这个问题真的很奇怪。我想做的是将选中的框值添加到隐藏字段中,如果隐藏字段未选中,则从隐藏字段中删除该值。我使用javascript来实现这一点,但是,我发现只有我调用alert一次,代码才能工作,否则就不能工作。谁能告诉我为什么?
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()函数。仅当有一个alert方法被调用一次时才有效。
发布于 2012-08-18 03:22:03
尝试这种方式,检查代码,也避免做循环。
$(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);
});
};
});发布于 2012-08-18 03:23:50
警告对话框会阻止其余javascript的执行。以下其中一种方法可以正常工作:
将代码放入
$(document).ready(function{
/*code here*/
});或者将脚本块放在<body>标记的底部。
此外,您应该将$(".BillChecked")存储在一个变量中,因为每个带有选择器的jQuery调用都是非常昂贵的。
var $billChecked = $(".BillChecked");https://stackoverflow.com/questions/12011842
复制相似问题