You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript中如何通过if语句修改指定id的input值并实现实时更新

问题原因

你代码里的bug出在变量取值的逻辑错误:

  • 你已经通过var nilaicli = this.value把输入框的值取出来赋值给nilaicli了,它本身就是字符串类型的输入值,不存在.value属性
  • 后续执行parseFloat(nilaicli.value)的时候拿到的永远是undefined转成的NaN,就会一直命中|| 2的默认值,所以计算出来的数值永远是2,只会走第一个if分支
  • 额外存在的隐患是你原来用toFixed(2)返回的字符串做大小判断,会出现字符串比较的逻辑异常,比如"100" < "90"的判断结果为true,会导致分支判断错误

修正后的JS代码

$("#inputDatabaseName").on("keyup", function(e) {
  var nilaicli = this.value,
    skorcli = document.getElementById("skorclis");
  // 直接对输入值转数值,不需要加.value;如果需要非数字输入默认取2,把0改成2即可
  var cli1 = parseFloat(nilaicli) || 0;

  if (cli1 <= 39.99 && cli1 >= 0) {
    skorcli.value = 1;
  } else if (cli1 >= 40.0 && cli1 <= 59.99) {
    skorcli.value = 2;
  } else if (cli1 >= 60.0 && cli1 <= 79.99) {
    skorcli.value = 3;
  } else if (cli1 >= 80.0 && cli1 <= 89.99) {
    skorcli.value = 4;
  } else if (cli1 >= 90.0 && cli1 <= 100) {
    skorcli.value = 5;
  } else {
    // 超出0-100范围的情况可按需调整逻辑,这里是清空值
    skorcli.value = '';
  }
});

内容的提问来源于stack exchange,提问作者Baharudin . M

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 12:57:03