我通过ajax加载内容,如果点击它们,想要更改每个复选框的值。我试试
function calculate(){
if($('input[type=checkbox][checked]')) {
$(this).attr({
value: 1
});
} else {
$(this).attr({
value: 0
});
}
calculatebbb();
}
并添加到每个输入:
<input type="checkbox" name="a003" value="230073" onclick="calculate()">
但它不会检查这个元素,它会清除所有元素。
答案 0 :(得分:1)
试试这个:
...ajax call...
success: function(data) {
... append Your input elements to #myDiv ...
$('#myDiv input').bind('click', function(){
var that = $(this);
if( that.is(':checked') ) {
that.val(1)
} else {
that.val(0)
}
calculatebbb();
});
},
...
答案 1 :(得分:1)
尝试排序一个
if($('input[type=checkbox]')bind('click', function(){
$(this).attr('checked', !$(this).attr('checked'));
});
答案 2 :(得分:1)
这可以随心所欲地使用
<强> HTML 强>
<input type="checkbox" name="a003" value="230073" onclick="calculate(this);">
<强>的Javascript 强>
function calculate(checkbox){
console.log($(checkbox));
if($(checkbox).attr("checked")) {
$(checkbox).val(1);
} else {
$(checkbox).val(0);
}
calculatebbb();
}
你做错了什么:
this
不是您的输入。如果您使用console.log(this)
进行核对。
此外input[type=checkbox][checked]
未选择您的输入,也可能在此使用ID。
您可以使用.val(1)
答案 3 :(得分:0)
而不是
$(this).attr({
value: 1
});
试
$(this).val(1);
//编辑:另一个错误是你在函数this
中使用calculate
。这里this
指的是函数 - 而不是输入。你应该使用这样的jQuery:
$(document).ready(function() {
$('input').click(function() {
// do your things with this
});
});
而不是在HTML中定义点击处理程序。
答案 4 :(得分:0)
在这种情况下 应该是这样的。 $(this).val('value you wan to put');
如果你不想使用jquery document.getElementById('id')。value = xxx; 但是在这种情况下你要把id为html元素。
答案 5 :(得分:0)
将您的代码更改为:
function calculate(obj) {
obj.value = obj.checked + 0;
calculatebbb();
}
和HTML:
<input type="checkbox" name="a003" value="230073" onclick="calculate(this)">
因此,如果选中的值将变为1,如果未选中则为0。