проверке введённых данных в форму

Статус
Закрыто для дальнейших ответов.

Nesteroff

New Member
Регистрация
07.01.2008
Сообщения
6
Здраствуйте! Воспльзовался статьёй по проверке введённых данных в форму на Java Script перед отправкой её на сервер однако после проверки формы и выведения сообщения о том что поля пусты осуществлается переход на страницу обработки данных написанную на php. Как сделать так что-бы переход не выполнялся? Заранее спасибо!
 

RoamingFire

Well-Known Member
Регистрация
04.01.2008
Сообщения
145
Ссылку на статью, и расставь знаки препинания плиз! А то напряг так читать!!!! :angry:
 

Nesteroff

New Member
Регистрация
07.01.2008
Сообщения
6
OK: Вот тема заново: Воспльзовался статьёй по проверке введённых данных в форму на Java Script, перед отправкой её на сервер, однако после проверки формы и выведения сообщения о том что поля пусты, осуществлается переход на страницу обработки данных написанную на php. Как сделать так что-бы переход не выполнялся? Заранее спасибо! Функция самая обыкновенная :

function SendForm(){
<!--
if (document.forms[0].in_payment_form.value == ""){
alert('Пожалуйста, введите форму оплаты!');
document.forms[0].in_payment_form.focus();
return false ;
}
if (document.forms[0].operation_system.value == ""){
alert('Пожалуйста, введите тип платёжной системы!');
document.forms[0].operation_system.focus();
return false ;
}
return true;
}



Вот сама ФОРМА:

<form name="fo" action="registration3.php" onsubmit="SendForm();" >
<table border="0">
<tr><td>Форма оплаты:</td><td><input type="text" name="in_payment_form"/>*</td></tr>
<tr><td>Тип платёжной системы:</td><td><input type="text" name="operation_system"/>*</td></tr>
<tr><td colspan="2" align="center"><input type="submit" value="Далее" /></td><td></td></tr>
</table>
</form>


p.s. Сообщение о том что поле пустое появляется, но после клика на нём почему-то загружается страница-обработчик.
 

RoamingFire

Well-Known Member
Регистрация
04.01.2008
Сообщения
145
JavaScript не знаю. Как я понял, нужно куда-то условие вставить - если одно из полей пусто, то переход на обработчик не делать. Написать этого не могу, так-как js не знаю. Если js знаешь разберешся!
 

Nesteroff

New Member
Регистрация
07.01.2008
Сообщения
6
Из формы и правда ни чего не передаётся, но почему он ПЕРЕХОДИТ на след.страницу?????
Кому интересно вот 2 файла:
P.S. Хотел прикрепить файлы но выскакивает: Неудачная загрузка. Директория загрузок файлов не доступена. Пожалуйста, сообщите об этом администрации.
 

RoamingFire

Well-Known Member
Регистрация
04.01.2008
Сообщения
145
Я и говорю, сделай условие на js, что если поля пустые то не надо переходить на след. страницу!
 

ZitosS_32

Совесть
Регистрация
12.03.2006
Сообщения
852
Сделайте проверку не по конопке submit а по отдельным button
<input type="button" value="Проверить логин" onClick="finc()">

Просто вам надо будет создать функции, и по onClick выполнять ту или иную функцию )))
 

Nesteroff

New Member
Регистрация
07.01.2008
Сообщения
6
Сделайте проверку не по конопке submit а по отдельным button
<input type="button" value="Проверить логин" onClick="finc()">

Просто вам надо будет создать функции, и по onClick выполнять ту или иную функцию )))
Я делал проверку по кнопке submit и по атрибуту onsubmit формы, а смысл делать к каждому полю отдельно , пользователь(читать препод:)))) может просто клацнуть на Submit и форма всё равно отправиться, и чихал он на каждую кнопку!!! Выходит проверку можно сделать, только через PHP на стороне сервера?
 

ZitosS_32

Совесть
Регистрация
12.03.2006
Сообщения
852
Во-первых, если кнопка button, то никакие данные не отошлются при событии onClick
Во-вторых, а ваы не пробовали сделать переадресацию, если данные не верны
типа
<input type="submit" value="Передать" onSubmit="setParam()">
Код:
<script language="javascript">

function setParam()
{
 if(Проверка данного не верна)
 {
	location.href="На эту же страницу";
	<?Header("location: ". $_SERVER["PHP_SELF"]);exit;?>
  }
}

</script>
 

Baboot

New Member
Регистрация
15.01.2008
Сообщения
6
OK: Вот тема заново: Воспльзовался статьёй по проверке введённых данных в форму на Java Script, перед отправкой её на сервер, однако после проверки формы и выведения сообщения о том что поля пусты, осуществлается переход на страницу обработки данных написанную на php. Как сделать так что-бы переход не выполнялся? Заранее спасибо! Функция самая обыкновенная :

function SendForm(){
<!--
if (document.forms[0].in_payment_form.value == ""){
alert('Пожалуйста, введите форму оплаты!');
document.forms[0].in_payment_form.focus();
return false ;
}
if (document.forms[0].operation_system.value == ""){
alert('Пожалуйста, введите тип платёжной системы!');
document.forms[0].operation_system.focus();
return false ;
}
return true;
}



Вот сама ФОРМА:

<form name="fo" action="registration3.php" onsubmit="SendForm();" >
<table border="0">
<tr><td>Форма оплаты:</td><td><input type="text" name="in_payment_form"/>*</td></tr>
<tr><td>Тип платёжной системы:</td><td><input type="text" name="operation_system"/>*</td></tr>
<tr><td colspan="2" align="center"><input type="submit" value="Далее" /></td><td></td></tr>
</table>
</form>


p.s. Сообщение о том что поле пустое появляется, но после клика на нём почему-то загружается страница-обработчик.
Была пох
1. В форме убери action
2. Вместо return true пиши document.forms[0].action = "registration3.php"

а почему false не работает не пойму
 

ZitosS_32

Совесть
Регистрация
12.03.2006
Сообщения
852
А тут и понимать то нечего, неправильно структуризированно
Код:
function SendForm(){
<!--
if (in_payment_form.value == ""){
alert('Пожалуйста, введите форму оплаты!');
in_payment_form.focus();
return false;
} else if (operation_system.value == ""){
alert('Пожалуйста, введите тип платёжной системы!');
operation_system.focus();
return false;
} else {
return true;
}
}


Вот сама ФОРМА:

<form action="registration3.php" onsubmit="SendForm();" >
<table border="0">
<tr>
<td>Форма оплаты:</td>
<td><input id="in_payment_form" type="text" name="in_payment_form"/>*/td>
</tr>
<tr>
<td>Тип платёжной системы:</td>
<td><input id="operation_system" type="text" name="operation_system"/></td>
</tr> 
<tr>
<td colspan="2" align="center"><input type="submit" value="Далее" /></td>
</tr>
</table>
</form>

Попробуйте так, но мне всёже кажется, что переходить всё равно будет... хз, можно конечно по другму сделать...
 

VoidUp

Новичок
Регистрация
16.01.2008
Сообщения
2
Код:
&lt;script language="JavaScript" type="text/javascript">
function SendForm(){
<!--
if (document.forms[0].in_payment_form.value == ""){
alert('Пожалуйста, введите форму оплаты!');
document.forms[0].in_payment_form.focus();
return false;
}
if (document.forms[0].operation_system.value == ""){
alert('Пожалуйста, введите тип платёжной системы!');
document.forms[0].operation_system.focus();
return false;
}
return true;
}

</script>

Вот сама ФОРМА:

<form name="forms" action="registration3.php" onsubmit="" >
<table border="0">
<tr><td>Форма оплаты:</td><td><input type="text" name="in_payment_form"/>*</td></tr>
<tr><td>Тип платёжной системы:</td><td><input type="text" name="operation_system"/>*</td></tr>
<tr><td colspan="2" align="center"><input type="submit" value="Далее" onclick="if (SendForm() == false){this.type='button'}else this.type='submit'" /></td><td></td></tr>
</table>
</form>
Вот, попробуй так. Есть еще один способ - отключить кнопку "Далее" до тех пор, пока все поля не будут заполнены. Если нужно могу написать код, но думаю и сам справишься.
P.S Кстати, тут обязательна нужна проверка на пробелы....
 

Ivan

суперМодератор
Регистрация
10.01.2007
Сообщения
316
Привет.

Тестить не стал - не интересно. Можно посмотреть на логику:

функция {
если (выполняется) {то фалсе};
если (выполняется) {то фалсе};
ретурн труе;
}

Похоже, что "ретурн труе;" выполняется всегда.
Попробуй:

функция {
if (выполняется) {то фалсе}
elsif (выполняется) {то фалсе}
else {ретурн труе};
}

Т.о. отработав пусты поля скрипт отдаст труе.
А сейчас, похоже, отработав "если", он переходит далее (скрипт то ещё не окончился) и находит "ретурн труе"
 

ZitosS_32

Совесть
Регистрация
12.03.2006
Сообщения
852
Rico, ты прям мой код скопипастил :biggrin: :biggrin:
 

Ivan

суперМодератор
Регистрация
10.01.2007
Сообщения
316
Гы! и правда! )))

Тады я за твой вариант!
всё ведь показывает, что срабатывает "труе". Как можно первым делом не проверить это...
Ретурн - это ж не конец скрипта, это просто возврат данных.

пост не читал - огромный. МоЗг побоялся сломать...
 

VoidUp

Новичок
Регистрация
16.01.2008
Сообщения
2
Привет.

Тестить не стал - не интересно. Можно посмотреть на логику:

функция {
если (выполняется) {то фалсе};
если (выполняется) {то фалсе};
ретурн труе;
}

Похоже, что "ретурн труе;" выполняется всегда.
Попробуй:

функция {
if (выполняется) {то фалсе}
elsif (выполняется) {то фалсе}
else {ретурн труе};
}

Т.о. отработав пусты поля скрипт отдаст труе.
А сейчас, похоже, отработав "если", он переходит далее (скрипт то ещё не окончился) и находит "ретурн труе"
А я думаю, что нужно тестить ибо ничего не работает
 

Baboot

New Member
Регистрация
15.01.2008
Сообщения
6
Нифига я не пойму почему субмит отрабатывается если идет return false. Вот те рабочий скрипт рабочий тока реализован через нное место:
Код:
<script language="javascript">

function SendForm(){
<!--
  if (document.forms[0].in_payment_form.value == ""){
	alert('Пожалуйста, введите форму оплаты!');	
	return false;
   
	document.forms[0].in_payment_form.focus();
  }
  else if (document.forms[0].operation_system.value == ""){
	alert('Пожалуйста, введите тип платёжной системы!');
	document.forms[0].operation_system.focus();
	return false;
  }else{ 
	document.forms[0].action="registration3.php";
	document.forms[0].submit();
	
  }
  return false;
}
</script>


Вот сама ФОРМА:
<form name="fo">
<table border="0">
  <tr>
	<td>Форма оплаты:</td>
	<td><input type="text" name="in_payment_form"/>*</td>
  </tr>
  <tr>
	<td>Тип платёжной системы:</td>
	<td><input type="text" name="operation_system"/>*</td>
  </tr>	
  <tr>
	<td colspan="2" align="center">
	  <input type="button" value="Далее" onclick="SendForm()"/>
	</td><td></td>
  </tr>
</table>
</form>
 

ZitosS_32

Совесть
Регистрация
12.03.2006
Сообщения
852
Делай так
Код:
<script language="javascript">

function SendForm(){
<!--
  if (document.getElementById("payment").value == ""){
	alert('Пожалуйста, введите форму оплаты!');	
	document.getElementById("payment").focus();
	return false; 
  } else if (document.getElementById("operation").value == ""){
	alert('Пожалуйста, введите тип платёжной системы!');
	document.getElementById("operation").focus();
	return false;
  }else{ 
	document.getElementById("myForm").action="registration3.php";
	document.getElementById("myForm").submit();  
  }
}
</script>


Вот сама ФОРМА:
<form id="myForm">
<table border="0">
  <tr>
	<td>Форма оплаты:</td>
	<td><input id="payment" type="text" name="in_payment_form"/>*</td>
  </tr>
  <tr>
	<td>Тип платёжной системы:</td>
	<td><input id="operation" type="text" name="operation_system"/>*</td>
  </tr>	
  <tr>
	<td colspan="2" align="center">
	  <input type="button" value="Далее" onclick="SendForm(); return false;"/>
	</td><td></td>
  </tr>
</table>
</form>
 
Статус
Закрыто для дальнейших ответов.
Верх Низ