javascript - onChange 未在移动设备上触发

标签 javascript html

我知道这个问题已被问过多次,但我找不到正确的答案。我没有使用 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 Blade 引擎中的变量从数据库输出数组。我使用 indexOf 来检查输入字段的值在给定的 JSON 数组上是否有任何匹配的记录。那一点效果很好。当我在输入字段中手动输入数字 205 时,它也适用于 PC 跨浏览器(至少 Chrome 和 Firefox)。但是当使用 document.getElementById("roomnumber").value = '205'; 时,它不起作用。也在手机上。因为就我而言,领域需要聚焦和不聚焦?我希望能够使用 document.getElementById("roomnumber").value = '205 更改 document.getElementById("btowelamt").value = "2"; 的值'; 而不必手动输入。我不想聚焦按键。我希望 JS 更改该值,并据此更改其他字段的值。我不知道如何处理这个问题。

谢谢

最佳答案

onChange 不起作用的原因是,当特定字段失去焦点时会触发 onChange,如果该值与前一个值不匹配,则仅触发该事件。

您可以通过将 onChange 替换为 onKeyUp 来检测即时更改

关于javascript - onChange 未在移动设备上触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48702689/

相关文章:

javascript - Chrome 开发者工具不显示动态 DOM 更新

javascript - Ember 计算属性未更新

javascript - Firefox 中的 onchange 被触发而不改变

javascript - 使用javascript更改 anchor 的下载属性的值

html - 线到中心的 CSS 过渡宽度

javascript - 将一个 HTML 元素滚动到另一个元素的中心

javascript - 从 Servlet 获取 HTTP JSON 响应后如何更改 HTML 代码

javascript - 如何使下拉菜单在一定时间后消失 JavaScript

html - 如何在模型 TextField 中使用 HTML 中的 Django 模板变量?

html - 如何让 CSS 边框跨越页面的长度但元素保留在容器内?