Forum Webscript.Ru

Программирование => JavaScript & JScript => Тема начата: tarya от 22 Июля 2003, 12:58:16

Название: зачем так быстро тему закрыли? - confirm - после отмены все равно форма обсубмичивает
Отправлено: tarya от 22 Июля 2003, 12:58:16
все таки непонятно немного...

вот пример.




function proverka()
{

if (document.all.addprod.artikul.value == \'\')
{
alert(\'Вы забыли ввести АРТИКУЛ\');
return false;
}

}
 

вот смотрите - нажимаю кнопку "отправить" и все принимает эта функция. Она проверили - поле пустое и вывело сообщение, но все же хоть и "return false;" все же форма далее обсубмичивается и все же мой ПХП скрипт ее принимает и обрабатывает :(, как быть - так нехочется чтоб форма обсубмичивалась...

Спасибо большое.
Название: зачем так быстро тему закрыли? - confirm - после отмены все равно форма обсубмичивает
Отправлено: n0name от 22 Июля 2003, 13:41:19
Вариант:...
Название: зачем так быстро тему закрыли? - confirm - после отмены все равно форма обсубмичивает
Отправлено: n0name от 22 Июля 2003, 15:04:22
Проверено, все работает, пользуйся :)






Название: зачем так быстро тему закрыли? - confirm - после отмены все равно форма обсубмичивает
Отправлено: tarya от 22 Июля 2003, 15:14:48
Цитировать
n0name:
Проверено, все работает, пользуйся



Ты пробовал вместе с ПХП скрпитом?



//добавление продукции
    if ($action == "add_prod")
    {
    if (isset ($submit_add))
    {
    connect ();
     
    $query = "INSERT INTO prod VALUES (NULL, \'$artikul\', \'$decor\', \'$name\', \'$razdel\', \'$category\', \'$about\', \'$cena\', \'$optcena\', \'$act\', \'$sale\', \'$soputs\', \'$soputs_razdel\', NULL, \'$ready\', \'$visible\', NULL, NULL, NULL)";
    mysql_query ($query) or die(mysql_error());
    print "Все данные занесены успешно!";
    }
    else
        {
    addprod();
        }
    }  // !добавление продукции

Потом получается то что
Название: зачем так быстро тему закрыли? - confirm - после отмены все равно форма обсубмичивает
Отправлено: Xander от 22 Июля 2003, 15:19:15
tarya
А что бы тебе не повесить проверку на OnSubmit?

Как-то так:


function CheckIt() {
...
return true;
} else {
return false;
}

Или не работает?
Название: зачем так быстро тему закрыли? - confirm - после отмены все равно форма обсубмичивает
Отправлено: tarya от 22 Июля 2003, 15:28:49
нет ребята смотрите. все работает и просто чудесно и интересно, поля проверяются, но вот в чем вопрос. ПХП скрипт проверяет была ли нажата кнопка Субмит, и если она нажата то неспотря на то как прошло выполнение ява скрипта - форма обрабатывается, обрабатывается несмотря на то какой результат у явы - true или false...

можно и было бы решением задавать в
но как это сделать ?
Название: зачем так быстро тему закрыли? - confirm - после отмены все равно форма обсубмичивает
Отправлено: n0name от 22 Июля 2003, 15:31:20
С php проверено. your_script.php:
echo $_GET[\'artikul\']; прекрасно работает - в случае пустого поля до скрипта не доходит, если же проверка JS успешно пройдена, в дело вступает php и переменные запроса передаются корректно. Твой php-скрипт не смотрел, добро пожаловать в Forum Webscript.Ru > Программирование > PHP :)
Название: зачем так быстро тему закрыли? - confirm - после отмены все равно форма обсубмичивает
Отправлено: n0name от 22 Июля 2003, 15:51:39
Ошибку свою понял и понял, чего хочешь, извиняюсь. Все гораздо проще:







Название: зачем так быстро тему закрыли? - confirm - после отмены все равно форма обсубмичивает
Отправлено: Макс от 22 Июля 2003, 16:14:30
tarya , в предыдущей теме я тебе совсем другой код показывал.
Как проверять форму на форуме уже обсуждалось:
http://forums.webscript.ru/showthread.php?s=&threadid=10686
Название: зачем так быстро тему закрыли? - confirm - после отмены все равно форма обсубмичивает
Отправлено: tarya от 22 Июля 2003, 17:35:30
Цитировать
Макс:
 предыдущей теме я тебе совсем другой код показывал



Спасибо Макс, но просто хоть код и был другой но все же форма тогда обсубмичивавась - но тут мы уже это прожевали и я нащел выход, спасибо
Название: зачем так быстро тему закрыли? - confirm - после отмены все равно форма обсубмичивает
Отправлено: tarya от 22 Июля 2003, 17:47:27
вот еще такой вопрос - все получилось, но!

код функции проверки

function proverka()
{

if (document.all.addprod.artikul.value == \'\')
{
alert(\'Вы забыли ввести АРТИКУЛ\');
document.all.addprod.artikul.focus();
return false;
}

if (document.all.addprod.name.value == \'\')
{
alert(\'Вы забыли ввести НАЗВАНИЕ продукции\');
document.all.addprod.name.focus();
return false;
}

if (document.all.addprod.cena.value == \'\')
{
alert(\'Вы забыли ввести ЦЕНУ товара\');
document.all.addprod.cena.focus();
return false;
}

if (document.all.addprod.optcena.value == \'\')
{
alert(\'Вы забыли ввести ОПТОВУЮ ЦЕНУ товара\');
document.all.addprod.optcena.focus();
return false;
}

if (document.all.addprod.about.value == \'\')
{
if (confirm (\'Вы забыли ввести ОПИСАНИЕ - должно быть?\'))
{
document.all.addprod.about.focus();
return false;
}
else
{
document.addprod.submit();
}
}

else
{
document.addprod.submit();
}

}



в конце есть такая штука:

if (document.all.addprod.about.value == \'\')
{
if (confirm (\'Вы забыли ввести ОПИСАНИЕ - должно быть?\'))
{
document.all.addprod.about.focus();
return false;
}
else
{
document.addprod.submit();
}
}



если б я не поставил
else
{
document.addprod.submit();
}

то постоянно бы оно возвращялось на проверку снова....
а если таких проверок несколько одновременно - как быть?
чувака спрашивают - нужно ли описание - нет, нужно ли там то - нет, нужно ли се - да....

как быть когда так одно в другое вложено?
Название: зачем так быстро тему закрыли? - confirm - после отмены все равно форма обсубмичивает
Отправлено: Макс от 22 Июля 2003, 18:01:28
в самом конце функции, перед } поставь
document.addprod.submit();
Название: зачем так быстро тему закрыли? - confirm - после отмены все равно форма обсубмичивает
Отправлено: tarya от 22 Июля 2003, 18:15:11
Не Макс ты непонял наверное, смотри....

если есть 5-6 полей, которые должны быть заполнены или нет проверяются и получается как сделать это....

скрипт спрашивает - нужно заполнить это поле? - жмем да (document.all.addprod.about.focus(); ) - заполняем поле, если нет то скрипт проверяет следущее поле и так далее и в конце те поля которые небыли заполнены проверяются заново вель они пустые а условие
if (document.all.addprod.about.value == \'\')
            {
                    if (confirm (\'Вы забыли ввести ОПИСАНИЕ - должно быть?\'))
                    {
                    document.all.addprod.about.focus();
                    return false;
                    }
                              }



как быть?
Название: зачем так быстро тему закрыли? - confirm - после отмены все равно форма обсубмичивает
Отправлено: n0name от 23 Июля 2003, 11:17:58
На сколько я понял, условия задачи такие?
1. Есть набор полей.
2. Они проверяются в js - "должно оставаться пустым ?да/нет"
3. После проверки всех полей форма отправляется.












По моему, это есть решение. Для того, чтобы пустые поля заново не спрашивались надо, наверно, всякие hidden вставлять etc.