jQuery:选中,然后将每个选中的值添加到字符串中
我有一个表单,我希望已选中内容的值以div的形式输出到屏幕。我的代码忽略了:checked部分,选中复选框时,它会将值输出到div,但未选中时不会将其删除 此外,它并没有将它们添加到列表中,而是将上次单击的复选框值替换为旧值 这是我的密码:jQuery:选中,然后将每个选中的值添加到字符串中,jquery,each,checked,Jquery,Each,Checked,我有一个表单,我希望已选中内容的值以div的形式输出到屏幕。我的代码忽略了:checked部分,选中复选框时,它会将值输出到div,但未选中时不会将其删除 此外,它并没有将它们添加到列表中,而是将上次单击的复选框值替换为旧值 这是我的密码: jQuery('.detectChangeCheckbox').click(function(){ jQuery(".detectChangeCheckbox").change(function () { var
jQuery('.detectChangeCheckbox').click(function(){
jQuery(".detectChangeCheckbox").change(function () {
var stepId = jQuery(this).attr("rel");
var str = "You have selected: ";
if(jQuery("detectChangeCheckbox:checked")){
jQuery(this).each(function () {
str += jQuery(this).val() + " ";
});
};
jQuery("#liveResult"+stepId).text(str);
})
.change();
});
谢谢在您的if条件下,问题似乎在这里:
if(jQuery("detectChangeCheckbox:checked")){
这里您遗漏了一个
,它是jQuery中的css类选择器表示,您应该检查checked的长度:
if(jQuery(".detectChangeCheckbox:checked").length){
注: 您不需要使用
click
handler来包装它,change
事件就可以了
相反,我建议您这样做:
jQuery(".detectChangeCheckbox").change(function () {
var stepId = jQuery(this).attr("rel");
var idx = $(this).index();
var arr = [];
($(this).is(':checked')) ? arr.push(this.value) : arr.splice(1, idx);
jQuery("#liveResult"+stepId).text(arr.join());
});
两件事-不确定为什么要在
中嵌套单击
。更改
-不要这样做,除非您不想在单击后绑定更改
事件。我只能猜这是你想要的代码:
jQuery(".detectChangeCheckbox").change(function () {
var stepID = jQuery(this).attr("rel");
if (this.checked) {
var checkedValues = jQuery(".detectChangeCheckbox:checked").map(function() {
return this.value;
}).get().join(" ");
jQuery("#liveResult"+stepID).text(checkedValues);
}
});
获取该
。从单击方法中更改方法。。另外,jQuery(“detectChangeCheckbox:checked”)
正在查找
的标记。单击后,如果您单击它,则会注册它已更改。要添加到末尾而不是使用.append()而不是.text()替换,请使用.append()谢谢!错过比赛是愚蠢的错误。类选择器从一开始就关闭