我有一堆html複選框。每個複選框被描述爲這樣的:
echo "<td>"
echo "<input type = \"checkbox\" name=\"name\" value=\"$name\">";
echo "<input type = \"hidden\" name=\"user\" value=\"$user\">";
echo "</td>"
然後,我有一個提交按鈕,點擊運行一些JavaScript時:
echo "<input type=\"button\" name =\"send\" value=\"Submit\" onclick=\"get_checked(form)\">";
現在我的javascript:
function get_checked(form){
$("input[type='checkbox']").change(function() {
if($(this).is(':checked')){
$(this).find("input[name]").each(function(index, node){
formData[node.name] = node.value;
alert (node.name + node.value);
});
}
});
}
我想找到每個選中的複選框,然後打印出每個複選框的名稱/值對。但它不工作如無被驚動,我想我可能會使用$(本)不正確,因爲這工作,當我使用。每個:
$(':checkbox:checked').each(function(i){
testname_checked[i] = $(this).val();
alert(testname_checked[i]);
});
任何想法?
$(this).find ...將查找複選框後代的元素(我懷疑它有任何)。 – James
當您提交表單時,您將附加事件處理程序,並且您不會取消表單提交。你選擇哪個是複選框的孩子? – epascarello
因此,您看起來像是在點擊處理程序中附加了更改處理程序。那是不對的。您需要附加更改處理程序。 –