我有下面的函数在表中创建多个复选框。 问题:我无法获得检查每个框的值。如何使用onclick函数创建动态复选框警报?
function createRoutesTable(result)
{
var length = result.jsonList.length;
var tablecontents = "";
console.log(length);
tablecontents ="<table>";
for(var i = 0; i < length; i++)
{
tablecontents += "<tr>"
tablecontents += "<td><input type='checkbox' id='checkbox_"+ i + "' value='" + result.jsonList[i].Id +"' onclick = 'createAlerts()'><td>"
tablecontents += "</tr>"
}
tablecontents +="</table>";
document.getElementById("tablespace").innerHTML = tablecontents;
}
这里是我下面的功能:
function createAlerts()
{
if($('#checkbox_1').is(':checked'))
{
alert($(this).val());
}
}
这将为第一个框工作,但我需要为每次我点击任何对话框的方法,它会抢了适当的值。我真的不想写脆弱的代码,并为我创建的每个复选框写if语句。这真的很糟糕。换句话说,不管我点击checkbox_3或checkbox_6,我都会得到该复选框的值。我想过尝试这个way,但当我使用“onclick”时,我需要使用这个功能,所以我被卡住了。
请帮忙。如果我能回答这个问题,我会给+代表。
如果我点击checkbox_1,再后来我点击checkbox_2。即使我取消选中checkbox_1,我也会收到两次checkbox_2的提醒。有没有一种方法可以在我进行警报后重置此设置? – GeekyOmega
我不明白这是怎么发生的,事件处理程序只触发触发事件的元素(即复选框改变了状态)。 如果您正在获取所有警报,则必须遍历所有复选框或将该状态存储在某处。 看看我的例子,它可以做我认为你所要求的,它有一些在页面上的日志记录,所以你可以看到处理程序,而不必确定很多警报。 http://jsfiddle.net/jbergler/JzQJg/ –
是的,我保存$(this).val()作为函数内的一个var。这肯定会让事情变得糟糕。 – GeekyOmega