2012-06-01 58 views
4

我無法獲取動態複選框的選中值。我究竟做錯了什麼? http://jsfiddle.net/hxfsB/17/使用jQuery獲取動態複選框值

標記:

<html> 
    <body> 
     one<input type="checkbox" name='checkbox0' value="one_name" checked> 
    two<input type="checkbox" name='checkbox1' value="one_name1"> 
    three<input type="checkbox" name='checkbox2' value="one_name2"> 
     <input type="button" id="envoyer" value="Envoyer Reponse" /> 
    </body> 
</html> 

的Javascript:

$('#envoyer').click(function(e){ 
    var myArray=new Array(4); 
    for (var j = 0; j < 3; j++){ 
     var check=$('input:checkbox[name=checkbox'+j+']').is(':checked'); 
     if(check==true) 
      myArray[j]=$('input:checkbox[name=checkbox'+j+']').val(); 
    } 
    alert('check '+" "+myArray[i]); 
}); 
+0

在開發人員工具中查看瀏覽器的JavaScript控制檯。 –

回答

3

您有一個Uncaught ReferenceError: i is not defined;我在這裏更新您的提琴:

http://jsfiddle.net/hxfsB/24/

$('#envoyer').click(function(e){ 
    var myArray = new Array(3); 
    for (var j = 0; j < 3; j++) { 
     var check=$('input:checkbox[name=checkbox'+j+']').is(':checked'); 
     if(check==true) 
      myArray[j]=$('input:checkbox[name=checkbox'+j+']').val(); 

     // Alert Current Selection // 
     alert('check ' + " " + myArray[j]); 
    }  
}); 

請記住:undefined表示複選框未選中。

我希望這有助於!

4

您在輸出警報myArray時有一個錯誤(沒有定義i變量)。

但是,您的代碼可以更好地構造。這裏是一個解決方案:

$("#envoyer").click(function(e) { 
    var myArray = []; 
    $(":checkbox:checked").each(function() { 
     myArray.push(this.value); 
    }); 

    alert("Checked: " + myArray.join(",")); 
});​ 

DEMO:http://jsfiddle.net/hxfsB/25/

0
$('#envoyer').click(function(e){ 
    var myArray=new Array(3); 

    $('input[type=checkbox]:checked').each(function(i) { 
     myArray[i] = $(this).val(); 
     //alert($(this).val()); 
    }); 
}​);​ 
0

myArray[i]i不存在任何地方的問題。你需要要麼把警報內部的for循環和使用myArray[j]或創建一個新的使用i

1

在你的標題所暗示的,如果你想獲得檢查的複選框值,你可以做這個循環,

的Javascript:

$('#envoyer').click(function(e){ 
    $('input[type="checkbox"]:checked').each(function(){ 
     alert(this.value); 
    })   
})​ 

標記

<html> 
    <body> 
     one<input type="checkbox" name='checkbox0' value="one_name" checked> 
     two<input type="checkbox" name='checkbox1' value="one_name1"> 
     three<input type="checkbox" name='checkbox2' value="one_name2"> 
     <input type="button" id="envoyer" value="Envoyer Reponse" /> 
    </body> 
</html>