我在javascript替换功能方面遇到了麻烦。请指点我可能出错的地方。我的值包含" ONE,TWO,THREE,FOUR"。取消选中复选框后,复选框值将从我的 uniqueList 值中删除。
<input type="checkbox" name="attribute" class="attribute" value="ONE"> ONE
<input type="checkbox" name="attribute" class="attribute" value="TWO"> TWO
<input type="checkbox" name="attribute" class="attribute" value="THREE"> THREE
<input type="checkbox" name="attribute" class="attribute" value="FOUR"> FOUR
Javascript是;
var uniqueList = "ONE,TWO,THREE,FOUR";
$('.attribute').click(function() {
var val = (this.checked ? 'checked' : 'unchecked');
if(val=='unchecked'){
uniqueList = uniqueList.replace($(this).val(),"");
}
});
alert(uniqueList); //no uniiqueList value in alert
答案 0 :(得分:1)
由于处理程序在声明之后,并不意味着它也将以相同的方式执行,因为它是一个事件处理程序,并且仅在通过代码或手动触发时才会被调用。因此,您需要在代码中触发它。
var uniqueList = "ONE,TWO,THREE,FOUR";
$('.attribute').click(function() {
var val = (this.checked ? 'checked' : 'unchecked');
if (val == 'unchecked') {
uniqueList = uniqueList.replace($(this).val(), "");
}
}).trigger("click"); // triggering it invokes the handler
alert(uniqueList); // it works now