Jump to content
  • 0

Проваерка формы перед отправкой


Avalon4eg
 Share

Question

Здравствуйте, возникла такая проблема.

есть Форма, в которой нужно проверить чтоб обязательно был отмечен радиобаттон (Нужна именно проверка а не checked="checked")


<form action="" method="post" name="form1">
<p>{$question}</p>

<br />
<table width="300px" align="center">
<tr>
<td align="left"><input type="radio" name="rb" id="option1" value="opt1"/><label for="option1">{$opt1}</label></td>
<td align="left"><input type="radio" name="rb" id="option2" value="opt2"/><label for="option2">{$opt2}</label></td>
</tr>
<tr>
<td align="left"><input type="radio" name="rb" id="option3" value="opt3"/><label for="option3">{$opt3}</label></td>
<td align="left"><input type="radio" name="rb" id="option4" value="opt4"/><label for="option4">{$opt4}</label></td>
</tr>
</table>
<br />
<input type="hidden" name="q_id" value="{$id}"/>
<input type="button" value="Ответить" onclick="send()" name="send_answer"/>
</form>

проверка осуществляется скриптом

JS


function send(){
for(i=0;i<document.form1.rb.length;i++){
if(document.form1.rb[i].checked==true){
document.form1.submit();
return;
}
}
alert("Вы не выбрали ответ!");

}

Если проверка прошла - то данные с формы передаются в обработчик, который имеет вид



$is_answer = $inCore -> inRequest('send_answer'); /// Проверка isset($_REQUEST['send_answer'])
if($_SESSION['is_chek']){
if(!$is_answer){
..............
один код
..............
}
if($is_answer){
..............
другой код
..............
}
}

при нажатии на кнопку запускается скрипт, отрабатывает - но код при условии if($is_answer){..... } не выполняется.

Если же поставит кнопку Submit, то все работает - но при этом проверка игнорируется.

как можно запретить отправку формы при нажатии submit при помощи js ? Или может есть другие варианты реализации проверки?

Link to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 0

Здравствуйте, возникла такая проблема.

есть Форма, в которой нужно проверить чтоб обязательно был отмечен радиобаттон (Нужна именно проверка а не checked="checked")


<form action="" method="post" name="form1">
<p>{$question}</p>

<br />
<table width="300px" align="center">
<tr>
<td align="left"><input type="radio" name="rb" id="option1" value="opt1"/><label for="option1">{$opt1}</label></td>
<td align="left"><input type="radio" name="rb" id="option2" value="opt2"/><label for="option2">{$opt2}</label></td>
</tr>
<tr>
<td align="left"><input type="radio" name="rb" id="option3" value="opt3"/><label for="option3">{$opt3}</label></td>
<td align="left"><input type="radio" name="rb" id="option4" value="opt4"/><label for="option4">{$opt4}</label></td>
</tr>
</table>
<br />
<input type="hidden" name="q_id" value="{$id}"/>
<input type="button" value="Ответить" onclick="send()" name="send_answer"/>
</form>

Или может есть другие варианты реализации проверки?

<form action="" onsubmit="return send();" method="post" name="form1">
<input type="button" value="Ответить" name="send_answer" />
</form>

  • Like 1
Link to comment
Share on other sites

  • 0

js-ом прокатит только "на дурака", а так, на том же js можно наверное было бы проверять если выбран чекбокс, то кнопка submit enable, если нет - disable, или если выбран - то показать сабмит, если нет - то не показывать... хотя по нажатию на enter все-равно ведь отправится...

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy