2013-03-06 146 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"> 

這個問題似乎因爲您需要重置每個單選按鈕的驗證自定義消息,而不僅僅是您正在單擊的單選按鈕。