我有两组这样的输入字段,按类别区分:
<div>
<input type="text" class="columnone" />
<input type="text" class="columnone" />
<input type="text" class="columnone" />
</div>
<div>
<input type="text" class="columntwo" />
<input type="text" class="columntwo" />
<input type="text" class="columntwo" />
</div>
需要进行必要的验证,以确保用户只能将整数值输入这些字段。
如何从.columntwo
文本字段.columnone
change()
的相应字段中的值中减去.columntwo
中每个输入字段的值?空值应该被视为零。
例如,在change()
的第一个输入字段的columntwo
上,从.columntwo
中的第一个字段中减去.columntwo
中第一个输入字段的值}。其他字段保持不变。
提前致谢!
答案 0 :(得分:3)
假设您没有类columnone或columntwo的任何其他元素,您可以
$('input.columntwo').change(function() {
var $this = $(this);
$this.val(parseInt($('input.columnone').eq($this.index()).val(),10) - parseInt($this.val(),10));
});
答案 1 :(得分:2)
这有点令人费解,但它会奏效。这可以假设你想要双向触发函数(columntwo和columnone)
$('.columnone, .columntwo').change(function() {
var $this = $(this);
var sum = 0;
var index = $this.index();
if ($this.hasClass('columnone')) {
var val1 = parseInt($this.val(), 10);
var val2 = parseInt($('.columntwo:eq(' + index + ')').val(), 10);
} else {
var val2 = parseInt($this.val(), 10);
var val1 = parseInt($('.columnone:eq(' + index + ')').val(), 10);
}
val1 = (isNaN(val1)) ? 0 : val1;
val2 = (isNaN(val2)) ? 0 : val2;
sum = val2 - val1;
//console.log(sum);
alert(sum);
});