Автор Тема: зачем так быстро тему закрыли? - confirm - после отмены все равно форма обсубмичивает  (Прочитано 7250 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн tarya

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 370
  • +0/-0
  • 0
    • Просмотр профиля
все таки непонятно немного...

вот пример.




function proverka()
	
	
{
	

	
	

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

	
	
}


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

Спасибо большое.
Рожденный с понимающим, и гордо поднятым кулаком! Свидетель разреза запястья — он с ним!

Оффлайн n0name

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 42
  • +0/-0
  • 0
    • Просмотр профиля
Вариант:...
Да кому она нужна?!...

Оффлайн n0name

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 42
  • +0/-0
  • 0
    • Просмотр профиля
Проверено, все работает, пользуйся :)

<form action="your_script.php" action=get>
<
input type="text" name="artikul">
<
input type="button" name="ok" value="Добавить" onclick="submit_or_not_submit();">
</
form>
<
script language="javascript">
function 
submit_or_not_submit(){
  if(
proverka()){document.forms[0].submit();}
}
function 
proverka(){
if(
document.forms[0].artikul.value==\'\'){alert("Error");return false;}
return true;
}
</script>
Да кому она нужна?!...

Оффлайн tarya

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 370
  • +0/-0
  • 0
    • Просмотр профиля
Цитировать
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(); 
        } 
    }  
// !добавление продукции


Потом получается то что
Рожденный с понимающим, и гордо поднятым кулаком! Свидетель разреза запястья — он с ним!

Оффлайн Xander

  • санитар леса
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1780
  • +0/-0
  • 2
    • Просмотр профиля
tarya
А что бы тебе не повесить проверку на OnSubmit?

Как-то так:


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

Или не работает?
•••Jah\'d never let us down!•••

Оффлайн tarya

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 370
  • +0/-0
  • 0
    • Просмотр профиля
нет ребята смотрите. все работает и просто чудесно и интересно, поля проверяются, но вот в чем вопрос. ПХП скрипт проверяет была ли нажата кнопка Субмит, и если она нажата то неспотря на то как прошло выполнение ява скрипта - форма обрабатывается, обрабатывается несмотря на то какой результат у явы - true или false...

можно и было бы решением задавать в
но как это сделать ?
Рожденный с понимающим, и гордо поднятым кулаком! Свидетель разреза запястья — он с ним!

Оффлайн n0name

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 42
  • +0/-0
  • 0
    • Просмотр профиля
С php проверено. your_script.php:
echo $_GET[\'artikul\']; прекрасно работает - в случае пустого поля до скрипта не доходит, если же проверка JS успешно пройдена, в дело вступает php и переменные запроса передаются корректно. Твой php-скрипт не смотрел, добро пожаловать в Forum Webscript.Ru > Программирование > PHP :)
Да кому она нужна?!...

Оффлайн n0name

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 42
  • +0/-0
  • 0
    • Просмотр профиля
Ошибку свою понял и понял, чего хочешь, извиняюсь. Все гораздо проще:

<form action="your_script.php" action=get onsubmit="submit_or_not_submit();return false;">
<
input type="text" name="artikul"
<
input type="submit" name="ok" value="Добавить"
</
form>

<
script language="javascript"
function 
submit_or_not_submit(){ 
  if(
proverka()){document.forms[0].submit();} 

function 
proverka(){ 
if(
document.forms[0].artikul.value==\'\'){alert("Error");return false;} 
return true; 

</script>
Да кому она нужна?!...

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
tarya , в предыдущей теме я тебе совсем другой код показывал.
Как проверять форму на форуме уже обсуждалось:
http://forums.webscript.ru/showthread.php?s=&threadid=10686
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн tarya

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 370
  • +0/-0
  • 0
    • Просмотр профиля
Цитировать
Макс:
 предыдущей теме я тебе совсем другой код показывал



Спасибо Макс, но просто хоть код и был другой но все же форма тогда обсубмичивавась - но тут мы уже это прожевали и я нащел выход, спасибо
Рожденный с понимающим, и гордо поднятым кулаком! Свидетель разреза запястья — он с ним!

Оффлайн tarya

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 370
  • +0/-0
  • 0
    • Просмотр профиля
вот еще такой вопрос - все получилось, но!

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

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();
	
	
	
	
	
}


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

как быть когда так одно в другое вложено?
Рожденный с понимающим, и гордо поднятым кулаком! Свидетель разреза запястья — он с ним!

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28