在这里: http: //jsfiddle.net/justeric/AWC4U/4/选中一个框将对文本字段列中的所有条目求和,并从 100 中减去该总和,然后它将差值放在相应的文本字段中。因此,如果 20 是文本字段列中所有条目的总和,则选中复选框将导致 80 (100-20) 填充到相应的文本字段中。此功能正常工作,但这是我的问题:
如果我取消选中复选框,则相应的文本字段应返回零值而不影响任何其他文本字段。因此,在上面的示例中,80 应该返回 0 而不会更改 20。此外,选中的每个附加复选框都应该返回文本字段的新总和,包括从上次检查中填充的任何内容,现在,第一个计算只是不断重新填充对于选中的每个附加复选框。因此,如果复选框的总和为 20,并且我检查了一个复选框 80 填充在相应的文本字段中,那是正确的,但如果我检查另一个复选框 80 再次填充但这是错误的,现在应该填充 0,因为 100-20-80 = 0。
编辑:
因此,要清除与复选框对应的文本字段而不影响其他字段,需要以下内容:
$('.textfield').val(function() {
if($('#' + this.id.replace(/textfield/,'checkbox')).is(':unchecked')){
return 0;}
这会影响所有未选中的复选框,但我希望它仅在选中的复选框更改为未选中时才起作用。因此,该值以直观的方式恢复为 0,而不会影响与未选中复选框关联的任何其他文本字段