在Javascript

时间:2018-02-14 21:06:45

标签: javascript

我需要java脚本代码的帮助,以便从另一个输入字段更改一个输入字段的值,反之亦然。

我正在构建类似于Zillow按揭计算器的计算器,当您输入预付定金%时,预付定金额会更新,反之亦然,如果您输入美元金额百分比字段更新。

zillow calculator链接:https://www.zillow.com/mortgage-calculator/

这是我正在使用的Javascript代码,它只能以一种方式工作而不是另一种方式。 谢谢你的帮助。

<input type="text" id="fname" onchange="myFunction()">
<br><br>
<input type="text" id="james" onchange="myFunction()">


<script>
function myFunction() {
var x = document.getElementById("fname");
x.value = x.value;

var y = document.getElementById("james");
y.value = x.value;

}
</script>

3 个答案:

答案 0 :(得分:2)

只需将input事件绑定到两个输入字段。

  • 仅执行一次getElementById功能以提高性能。

var fname = document.getElementById('fname');
var james = document.getElementById('james');

fname.addEventListener('input', function() {
  james.value = this.value;
});

james.addEventListener('input', function() {
  fname.value = this.value;
});
<input type="text" id="fname">
<br><br>
<input type="text" id="james">

答案 1 :(得分:2)

问题在于,您永远不会将x的值设置为等于y的值。即使你这样做,考虑到你两次都调用相同的函数,值会立即被覆盖。

您要做的是使用两个彼此更新的独立功能。

请注意,您可能还希望在 input 上触发此功能,而不是 change

最后,您需要推断逻辑,并使用 addEventListener()

document.getElementById("fname").addEventListener("input", function(){
    document.getElementById("james").value = this.value;
});

document.getElementById("james").addEventListener("input", function(){
    document.getElementById("fname").value = this.value;
});
<input type="text" id="fname">
<br><br>
<input type="text" id="james">

答案 2 :(得分:0)

您确实需要检测更改:

SELECT vd.*
FROM volunteer_details vd
WHERE user_id = 73 AND
     (vd.volunteer_occupation in (SELECT oe.occupationName FROM occupation_event oe WHERE oe event_id = 8) or
      exists (select 1 from occupation_event oe where event_id = 8 and oe.occupationName = 'No Occupation Required')
     );