javascript - 当单个数字附加到输入字段中的值时,onchange 事件侦听器不起作用 [type=number]
问题描述
我有两个输入字段,它们都onchange
添加了事件侦听器:
HTML
<input type="number" size=5 style="width:80px;" id="funit" autocomplete="off" required>
<input type="number" size=5 style="width:80px;" id="tunit" autocomplete="off" required>
JAVASCRIPT
document.getElementById("funit").addEventListener("change",f1);
document.getElementById("tunit").addEventListener("change",f1);
function f1(){
var funit=document.getElementById("funit").value;
var tunit=document.getElementById("tunit").value;
if(funit.toString()!="" && tunit.toString()!=""){
if(funit>tunit){
alert("incorrect units");
document.getElementById("funit").value="";
document.getElementById("tunit").value="";
}
}
}
现在我有另一个函数,它从表的一行中获取值并将它们插入到字段中。例如:
funit=6;
tunit=7;
现在,如果我在输入中添加一个 0 funit
,即,如果我将其设为 60,那么它应该触发onchange
侦听器,但它不会。只有当我删除两个输入字段,然后再次键入时,才会触发事件侦听器。为什么这样?我该如何解决?
解决方案
document.getElementById("funit").addEventListener("change",f1);
document.getElementById("tunit").addEventListener("change",f1);
function f1(){
var funit=document.getElementById("funit")
var tunit=document.getElementById("tunit")
if(funit.value && tunit.value){
if(Number(funit.value)>Number(tunit.value)){
alert("incorrect units");
funit.value="";
tunit.value="";
}
}
}
<input type="number" size=5 style="width:80px;" id="funit" autocomplete="off" required>
<input type="number" size=5 style="width:80px;" id="tunit" autocomplete="off" required>
推荐阅读
- javascript - Nodejs - 使用 Brightcove 生成的签名 URL 将文件上传到 AWS W3 返回 403 Forbidden
- azure-devops - 在多阶段 Azure DevOps Yamls 上迭代插入依赖和条件
- php - 使用逗号分隔行中的数据执行连接
- java - 如何使用 for 在字符串中进行迭代替换每个字符(A 与 T,T,A,G 与 C,C 与 G)?
- sql - 有没有类似于 Pandas tail() 的 SQLite 函数
- php - Laravel 排队的作业在失败时不会重试
- javascript - 您如何为 Microsoft Excel 开发一个可供下载(不是从 Excel 市场)的插件?
- html5-canvas - Fabric JS:缩放时对齐指南未正确定位
- ios - 如果使用链接的人下载了应用程序,我的 swift 应用程序是否可以链接到应用程序商店并将信息传递给应用程序?
- c++ - 如何从小数部分大于参数的列表中删除数字?