2012-10-22 140 views
0

我有許多無線電組,您必須在每組中至少選擇1個。和我不想使用HTML「必需」。表單驗證通過Jquery

我用jquery寫了一些東西,但它不起作用。

我只想知道我哪裏做錯了。

$('#form1').submit(function(){ 

    $(".radiogrup").each(function(){ 

     var sel=$(this).find("input[type='radio']:checked").val(); 

    if(sel==null){ 
     alert("error msg"); return false; 

    } 
    else { 
     //submit form and do something. 
    } 

    }); 
}) 

但如果它們中的任何一個留空,它不應該提交表單。

+0

代碼運行時會發生什麼?從第一印象,我不認爲你需要'val()'... – JDandChips

+0

它以任何方式提交表單。如果你不留空白的任何廣播組。 – guybennet

+0

sel也許等於undefined,你能澄清一下嗎? sel.length應該是'> 0'。你有沒有試過調試過這個? – JDandChips

回答

0

替換此:

var sel=$(this).find("input[type='radio']:checked").val(); 
if(sel==null){ /* Error */ } 

if($(this).find(':radio:checked').length == 0) { /* Error */ } 

JsFiddle demo

0

嘗試這樣的事情

$('#form1').submit(function(){ 


var sel= 'true'; 
$(".myRadio").each(function(){ 
    if(this.checked){ 
     sel = 'false'; 
    } 
}) 

if(sel=='true'){ 
    alert("error msg"); return false; 

} 
else { 
    //submit form and do something. 
    return true; 
} 

})

+0

這個代碼片段中的'sel'是什麼類型? – JDandChips

+0

sel是用作標誌的初始值,如果邏輯發現任何一個收音機被選中,那麼它被設置爲false,並且取決於它的值,我們將返回表單將被submmited或不 –

+0

我的觀點是你把它當作一個字符串在某些情況下,然後作爲其他人的布爾值? – JDandChips