Javascript 双向绑定
我发现这个用纯JavaScript编写的非常短但方便的双向绑定代码。数据绑定工作得很好,但我想要的是从第一个输入中获取值并将其乘以所需的数字,然后将结果绑定到下一个输入。我将感激任何帮助。 这是我的HTML代码:Javascript 双向绑定,javascript,javascript-databinding,Javascript,Javascript Databinding,我发现这个用纯JavaScript编写的非常短但方便的双向绑定代码。数据绑定工作得很好,但我想要的是从第一个输入中获取值并将其乘以所需的数字,然后将结果绑定到下一个输入。我将感激任何帮助。 这是我的HTML代码: <input class="age" type="number"> <input class="age" type="number"> 如果期望的结果是获取第一个输入值,用它做一些事情,然后将其放入第二个输入,那么为什么如此严重 (function () {
<input class="age" type="number">
<input class="age" type="number">
如果期望的结果是获取第一个输入值,用它做一些事情,然后将其放入第二个输入,那么为什么如此严重
(function () {
var bindClasses = ["age"];
var attachEvent = function (classNames) {
classNames.forEach( function( className ) {
var els = document.getElementsByClassName( className ),
from, to;
if ( 2 > els.length ) {
return;
}
from = els[0];
to = els[els.length - 1];
from.addEventListener( 'keyup', function() {
var v = this.value;
// Do whatever you want with that value
// Then assign it to last el
if ( isNaN( v ) ) {
return;
}
v = v / 2;
to.value = v;
});
});
};
attachEvent(bindClasses);
})();
在JS中实现双向绑定的另一种简单方法如下:
<!-- index.html -->
<form action="#" onsubmit="vm.onSubmit(event, this)">
<input onchange="vm.username=this.value" type="text" id="Username">
<input type="submit" id="Submit">
</form>
<script src="vm.js"></script>
JS getter和setter在这方面做得很好,特别是当你看到浏览器对它的支持时。你面临的问题是什么?所有这些都反映了在第一次输入中写的完全相同的东西,但我想通过乘以数字来改变结果。将数字乘以什么?在第二个文本框中输入的数字?我想取第一个输入框中的数字,然后乘以所需的数字(如2),然后将结果发送到第二个输入框。
<!-- index.html -->
<form action="#" onsubmit="vm.onSubmit(event, this)">
<input onchange="vm.username=this.value" type="text" id="Username">
<input type="submit" id="Submit">
</form>
<script src="vm.js"></script>
// vm.js - vanialla JS
let vm = {
_username: "",
get username() {
return this._username;
},
set username(value) {
this._username = value;
},
onSubmit: function (event, element) {
console.log(this.username);
}
}