如何更改点击输入值?

我通过ajax加载内容,并希望更改每个复选框的值,如果单击它们。 我试试

function calculate(){ if($('input[type=checkbox][checked]')) { $(this).attr({ value: 1 }); } else { $(this).attr({ value: 0 }); } calculatebbb(); } 

并添加到每个输入:

  

但是它不会检查这个元素,它会清除所有元素。

这可以随意使用

HTML

  

使用Javascript

 function calculate(checkbox){ console.log($(checkbox)); if($(checkbox).attr("checked")) { $(checkbox).val(1); } else { $(checkbox).val(0); } calculatebbb(); } 

演示 http://jsfiddle.net/2hy4h/

你做错了什么:

this不是你的输入。 如果您使用console.log(this)检查。

另外input[type=checkbox][checked]不会选择你的输入,也可以在这里使用id。

您可以使用.val(1)设置值

尝试排序一个

 if($('input[type=checkbox]')bind('click', function(){ $(this).attr('checked', !$(this).attr('checked')); }); 

试试这个:

 ...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(); }); }, ... 

代替

 $(this).attr({ value: 1 }); 

尝试

 $(this).val(1); 

//编辑 :另一个错误是你在函数calculate使用this 。 这里指的是function – 而不是输入。 你应该使用这样的jQuery:

 $(document).ready(function() { $('input').click(function() { // do your things with this }); }); 

而不是在HTML中定义点击处理程序。

在这种情况下应该是这样的。 $(this).val(’value you wan to put’);

如果你不想使用jquery document.getElementById(’id’)。value = xxx; 但在这种情况下,你要把id为html元素。

将您的代码更改为:

 function calculate(obj) { obj.value = obj.checked + 0; calculatebbb(); } 

和HTML:

  

因此,如果选中的值将变为1,如果未选中则为0。