2013-03-06 148 views
1

使用html5表单验证时,似乎不可能从中清除错误状态。 问题出在需要的单选按钮组上。当尝试提交时没有选择单选按钮时,它会将所有无线电高亮显示为错误。 然后,当我选择1收音机错误消失,但是当做一个from.reset()将清除选定的收音机,它将产生一个错误,因为没有收音机被选中。清除html5表单错误

我发现没有办法规避这种情况。我试过使用setCustomValidity(''),但没有奏效。 同时暂时禁用验证并重新启用它也不起作用。

对于唯一的方法是从dom中彻底删除并重新生成它。 只删除单选按钮并重新生成它们将不起作用(至少使用相同的ID)。

有什么想法?

看到提琴:http://jsfiddle.net/KDkvE/
不要选择一个选项,然后按'下一步'。然后按复位。在Firefox中,这不会清除单选按钮周围的红色边框。

<form> 
<option name='test' type='radio' value='1' required/> 
<option name='test' type='radio' value='2' required/> 

<input type="submit" name="submitbutton" id="submitbutton" value="next"> 
<input type='reset' value='Reset'/> 
</form> 
+4

请显示您的标记和代码。 – 2013-03-06 15:54:06

+0

添加小提琴。一探究竟。 – 2013-03-06 20:38:34

回答

0

正在寻找一个优雅的解决这个自己,但因为没有一个聪明迄今回答了,我一定要提供这个未优雅的解决方案:

<input type="radio" name="radio_button_name" onclick="for(i=0;i&lt;this.form[ this.name ].length;i++){ this.form[ this.name ][i].setCustomValidity('') }" oninvalid="custom validation message"> 

这个问题似乎因为您需要重置每个单选按钮的验证自定义消息,而不仅仅是您正在单击的单选按钮。