这个问题真的很奇怪。我想要做的是将复选框值添加到隐藏字段,如果未选中,则从隐藏字段中删除该值。我使用javascript来实现这一点,但是,我发现只有我调用一次警报,代码工作,否则,它不会。谁能告诉我为什么?
var cpo={
AddCheckList:function(){
alert('aaaaaaaaaa'); //If I comment this line, the following code won't work.
$(".BillChecked").change(function() {
if ($(this).is(':checked')) {
var idList = $('#CPO_BillList').val() + $(this).attr('value') + ",";
$('#CPO_BillList').val(idList);
} else {
var temp = $('#CPO_BillList').val().replace($(this).attr('value') + ',', '');
$('#CPO_BillList').val(temp);
}
alert($('#CPO_BillList').val());
});
}
我打电话 cpo.AddCheckList(); 在页面底部。
以上是$(document).ready()函数。只有在调用一次警报方法时才有效。
答案 0 :(得分:0)
尝试这种方式,检查代码并避免循环。
$(document).ready(function(){
var billChecked = $(".BillChecked");
var cpoBill = $('#CPO_BillList');
var cpo = {AddCheckList:function(){
billChecked.change(function(){
var checked = $(this).is(':checked');
var billVal = $(this).val();
checked ? v = cpoBill.val() + billVal : v = cpoBill.val().replace(billVal + ',', '');
cpoBill.val(v);
});
};
});
答案 1 :(得分:0)
警告对话框阻止执行其余的javascript。以下之一将起作用:
将代码放入
$(document).ready(function{
/*code here*/
});
或将脚本块放在<body>
标记的底部。
此外,您应该将$(".BillChecked")
存储在一个变量中,因为每个带有Selector的jQuery调用都非常昂贵。
var $billChecked = $(".BillChecked");