2017-03-08 191 views
0

我使用下面的函數,以一個純粹的單選按鈕組調查表上進行一些簡單的驗證:jQuery的提交麻煩

$('form').submit(function(e) { 
    e.preventDefault(); 
    if($('input[type="radio"]:not(:checked)').val()) { 
     this.reportValidity(); 
     return; 
    } 
    this.submit(); 
}); 

我從這個fiddle開始並稍加修改它。

驗證時,單選按鈕非常好,根據需要...但由於某些原因的形式將不再提交一次無線電組有一個選擇,不像小提琴版本這工作。我覺得我錯過了一些非常簡單的事情,一旦有人回答這個問題,我會面對掌心。

在此先感謝。

+0

你的JS工作正常,據我可以告訴(在你提供的小提琴測試)。問題很可能在其他地方。 – stybl

+0

@Sty the fiddle不是沒有工作的代碼。對於這種困惑感到抱歉。該代碼僅適用於確保無線電組至少有一個選定的代碼。 – daredevil1234

+0

應該澄清一點,我測試了你在這篇文章中提供的代碼,將它粘貼在小提琴中。 – stybl

回答

3

在你修改後的腳本,你檢查任何未選中的單選按鈕,這樣的檢查總是退出 - 只有一個組中可以進行檢查,所以你一定至少有一個是不。它不會刷新合法性檢查,因爲該組沒有問題,但它仍然會退出提交功能,而不會進行實際的submit()調用。

+0

嗯,這是有道理的。讓我把代碼搞亂一下,然後回覆你 – daredevil1234

+0

玩得開心! :-) –

+0

我已經驗證了這是它不提交的原因。我一直無法修改我的代碼以正確提交,但我在前一段時間確實驗證了此答案的正確性。 – daredevil1234