输入的javascript分布
我试着做两件事:输入的javascript分布,javascript,Javascript,我试着做两件事: 将3个输入平衡到100 $input1 = $('#input1 '); $input2 = $('#input2 '); $input3 = $('#input3 '); $input1.on('input', function () { $input2 .val(100 - this.value); $input3 .val(100 - this.value - $input2.value) }); $input2显示良好,但未输出到$
$input1 = $('#input1 ');
$input2 = $('#input2 ');
$input3 = $('#input3 ');
$input1.on('input', function () {
$input2 .val(100 - this.value);
$input3 .val(100 - this.value - $input2.value)
});
$input2
显示良好,但未输出到$input3
(NaN)
我还尝试为input3创建一个回调,但效果也不太好$input2
是jQuery包装的元素。不能直接对其调用value
。您需要使用val()
获取值。由于value
将返回undefined
,因此最终输出为NaN
更改此项:
$input3.val(100 - this.value - $input2.value)
为此:
$input3.val(100 - this.value - $input2.val())
或者,您可以从jQuery包装器中获取本机元素,并对其调用value
。以下各项也应无缝工作:
$input3.val(100 - this.value - $input2[0].value)
对于#2,您可能希望查看
input[type=number]
,并使用min
和max
属性限制范围。$input2
是jQuery包装的元素。不能直接对其调用value
。您需要使用val()
获取值。由于value
将返回undefined
,因此最终输出为NaN
更改此项:
$input3.val(100 - this.value - $input2.value)
为此:
$input3.val(100 - this.value - $input2.val())
或者,您可以从jQuery包装器中获取本机元素,并对其调用value
。以下各项也应无缝工作:
$input3.val(100 - this.value - $input2[0].value)
对于#2,您可能希望查看
输入[type=number]
,并使用min
和max
属性限制范围。与@31piy的其他回答一样,您需要使用$input2.val()
或$input2[0].value。可以按如下方式平衡字段input2
和input3
中的值
$input1=$('#input1');
$input2=$(“#input2”);
$input3=$(“#input3”);
$input1.on('input',function(){
$input2.val(parseInt((100-this.value)/2));
$input3.val(100-this.value-$input2.val())
});代码>
与@31piy的其他回答一样,您需要使用$input2.val()
或$input2[0].value
。可以按如下方式平衡字段input2
和input3
中的值
$input1=$('#input1');
$input2=$(“#input2”);
$input3=$(“#input3”);
$input1.on('input',function(){
$input2.val(parseInt((100-this.value)/2));
$input3.val(100-this.value-$input2.val())
});代码>
尝试摆脱jQuery,因为您混淆了DOM API和jQuery API。DOM是您应该学习的,而不是jQuery
let$input1=document.querySelector('#input1');
让$input2=document.querySelector(“#input2”);
让$input3=document.querySelector(“#input3”);
$input1.addEventListener('input',函数(){
$input2.value=(100-this.value)/2;
$input3.value=100-this.value-$input2.value;
});代码>
尝试摆脱jQuery,因为您混淆了DOM API和jQuery API。DOM是您应该学习的,而不是jQuery
let$input1=document.querySelector('#input1');
让$input2=document.querySelector(“#input2”);
让$input3=document.querySelector(“#input3”);
$input1.addEventListener('input',函数(){
$input2.value=(100-this.value)/2;
$input3.value=100-this.value-$input2.value;
});代码>
thx,但没有任何方法显示为input 3,它保留0@erezt你是说这些方法都不管用吗?如果是这样,您需要检查您的控制台是否有错误。val()解决了NaN,但是输入3仍然是0,并且不分配100减去2个输入的剩余部分。JSF在question@erezt--请参见解决#2的另一个答案。您的code.thx中存在逻辑错误,但没有为input 3显示任何方法,它仍然存在0@erezt你是说这些方法都不管用吗?如果是这样,您需要检查您的控制台是否有错误。val()解决了NaN,但是输入3仍然是0,并且不分配100减去2个输入的剩余部分。JSF在question@erezt--请参见解决#2的另一个答案。代码中存在逻辑错误。