2013-11-28 96 views
0

選擇動態加載無線電組我有一組單選按鈕的如下面給出的。檢查是否使用jquery

<input type="radio" name="multi[1]" value="value-1"> 
<input type="radio" name="multi[1]" value="value-2"> 

<input type="radio" name="multi[2]" value="value-3"> 
<input type="radio" name="multi[2]" value="value-4"> 

<input type="radio" name="multi[3]" value="value-5"> 
<input type="radio" name="multi[3]" value="value-6"> 
<input type="radio" name="multi[3]" value="value-7"> 

<input type="radio" name="multi[n]" value="value-n"> 
<input type="radio" name="multi[n]" value="value-n"> 
<input type="radio" name="multi[n]" value="value-n"> 

如果這個組被動態加載,那麼我們如何檢查每個組中的選項是否被選中?

UPDATE:

num_group = 2; 
for(i = 1; i <= num_group; i++){ 
    if(!$('input[name="multi['+i+']"]').is(':checked')){ 
     alert('Please select elective subjects '+i+'!'); 
     return false; 
    } 
} 

如何動態地計算num_group?這裏

+0

請告訴我們,不工作的代碼。請記住,Stackoverflow不是爲你編寫代碼,而是爲了幫助你編寫代碼。告訴我們你已經付出了一些努力,首先自己解決問題。 –

+0

重複http://stackoverflow.com/questions/8229844/dynamical-radio-button-group-validation-in-jquery?rq=1 – mahatmanich

回答

0

您必須檢查documentready然後將change事件綁定到文檔。

這是考慮到被dynamiclly加載的任何要素(change函數仍會觸發這些元素)。

$(document).ready(function(){ 
    $(document).on('change', 'input[type=radio]', function(){ 
     console.log($(this).val()) 
    }); 
}); 
1

這實際上取決於您想要的驗證類型。

如果你想在一個特定的時間來驗證單選按鈕,例如,當用戶按下提交按鈕,你可以只是去通過所有的無線電設備相當簡單,是這樣的:

var max_radios = 1; // keep this updated as radio buttons are added 
$('#validate').click(function() { 
    for (i = 1; i <= max_radios; i++) { 
     console.log('Radio ' + i + ' is ' + 
        ($('[name="multi[' + i + ']"]:checked').val() == undefined ? 'unchecked' : 'checked') + '<br />'); 
    } 
}) 

Link to jsFiddle

,如果你想擁有驗證過的用戶添加/點擊單選按鈕這是一個有點麻煩。在這種情況下,只要添加了一個新的單選按鈕,您就想要建立一條驗證消息,指出用戶應該進行選擇,並且一旦選擇了一個值,驗證消息就會消失。讓我知道如果這就是你想要的。

+0

的感謝!使用multi [index]遍歷廣播組是有用的,經過一些修改後,我能夠做到這一點。 (更新問題) 不過,我有一個問題,雖然。我們如何計算這裏的num_group?如果我們在表單提交時驗證這些字段。 –