2

我在我的表单提交上添加了一个验证检查,但问题是它阻止了表单提交,但它也重置了我的整个表单。请让我知道我怎样才能return false停止表单提交并停止重置整个表单。谢谢

function error()
{
   if (!$("#form1 input[name='radio']:checked").val()) {
     alert('Error: Please select any check box!');
     return false;
   }
   else {
     //alert('One of the radio buttons is checked!');
   }
}

<form name="form1" id="form1">
  <input name="Name" type="text" id="name" size="70" />
  <input name="Age" type="text" id="age" size="70" />
  <input type="radio" name="radio" id="A18" value="18" />
  <input type="radio" name="radio" id="A19" value="19" />
  <input type="submit" onclick="error();" />
</form>
4

2 回答 2

2

您需要做的不仅仅是false从函数返回:

<input type="submit" onclick="return error();" />

因为“onclick”属性的值本质上是用作实际处理函数的主体,所以它需要自己的return声明。

编辑- meagar 的回答是个好主意 - 处理表单上的“提交”事件而不是按钮上的“点击”事件是明智的。如果您像他的示例中那样通过 jQuery 设置事件处理程序,return那么您只需要“错误”函数中的。

于 2013-04-21T13:30:36.557 回答
2

您需要submit使用验证功能处理表单的事件,并返回false

$("#form1").submit(error);

从您的处理程序返回 falsesubmit将取消表单提交,并且将保持表单元素的当前状态。

于 2013-04-21T13:31:37.723 回答