我知道这个问题已被多次询问,但我找不到合适的答案。我没有使用select
代码。
我的问题是我有一个类似这样的JS代码:
document.getElementById("roomnumber").value = '205';
我有一个充满活力的人,只是我把' 205'在这个例子中,因为它基本上是一样的。我有这样的输入:
<input type="text" id="roomnumber" name="roomnumber" onChange="roomnumberValue();">
到目前为止一切顺利。所以我想要的是在这个值改变时改变一些其他输入字段的值。所以我在上面给出的代码中使用了onChange
。
最后,这是roomnumberValue()
的代码:
function roomnumberValue() {
var blade1 = {!! json_encode($rooms_cat_1->toJson()) !!};
var roomnumber = document.getElementById("roomnumber").value;
if (blade1.indexOf(roomnumber) < 0) { // doesn't exist
alert('doesnt exist!');
} else { // does exist
document.getElementById("btowelamt").value = "2";
}
}
所以这很简单吧?我正在使用JSON encode
来使用Laravel刀片引擎中的变量从DB输出数组。我正在使用indexOf
来检查输入字段的值是否在给定的JSON数组上有任何匹配的记录。这一点工作得很好。当我在输入字段中手动输入数字205时,它也适用于PC跨浏览器(至少是Chrome和Firefox)。但是当使用document.getElementById("roomnumber").value = '205';
时,它不起作用。也在手机上。因为就我而言,这个领域需要集中注意力和不集中注意力?我希望能够使用document.getElementById("btowelamt").value = "2";
更改document.getElementById("roomnumber").value = '205';
的值,而不必手动输入focus
。我不想keypress
或var countA,countB,countC,countD,countE,countF = 0
checkFirst(){
Promise.all([this.checkWords()]).then( values => {
this.doSomething()
}
}
doSomething(){
// add value into database
}
。我希望JS更改值,并根据该值,其他字段值更改。我不知道如何处理这个问题。
由于
答案 0 :(得分:2)
onChange无法工作的原因是,当特定字段失去焦点时触发onChange,如果该值与之前的值不匹配,则触发该事件。
您可以通过将onChange替换为onKeyUp
来检测移民更改答案 1 :(得分:0)
找到了解决方案。
我正在使用QR扫描仪将房间号输入到输入字段。以下是QR码结果放在输入字段内的代码:
document.getElementById("roomnumber").value = content;
所以我在上述代码之后立即调用了@The SuperKat和@Matt Luccas Phaure Jensen提到的roomnumberValue()
。我不知道为什么我之前没有想到这一点。