我已经编写了这段代码,它检测是否有一个值填充在productName
字段使用javascript,然后它解析并自动填充输入字段quantity
。我的代码只工作,如果productName
字段是通过javascript填充键盘输入,如果我使用onChange
我想检测在两种情况下,即javascript和键盘,我如何检测使用键盘在这段代码?
const input = document.getElementById('productName');
const descriptor = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(input), 'value');
Object.defineProperty(input, 'value', {
set: function(t) {
console.log('Input value was changed programmatically');
descriptor.set.apply(this, arguments);
document.getElementById("quantity").value=t
},
get: function() {
return descriptor.get.apply(this);
}
});
var i=0;
function changeInput(){
/* console.log(document.getElementById('productName').value) */
document.getElementById("productName").value=i++;
}
<input type="text" id="productName" name="productName" placeholder="product name">
<input type="text" id="quantity" name="quantity" placeholder="quantity">
<button onclick="changeInput()">Change</button>
由于我是Javascript的初学者,@epascarello的注释帮助了我,这很容易绑定输入元素:
document.getElementById("productName").addEventListener("input",(event)=>{
document.getElementById("quantity").value= document.getElementById("productName").value;
})