[英]Enter less than or equal value using Javascript
如果用户输入的变量值超过输入变量值,我正在尝试向用户发出警报。
问题陈述: Max_ava_water = 300
如果用户输入 6,它也会显示“输入更少或相等的值”。
var Max_ava_water = 300 $('#input_rd').keyup(function() { if ($(this).val() > Max_ava_water) { console.log("Enter less or Equal values") $(this).val(''); } });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <input type="value" id="input_rd" />
您正在检查每个keyup
事件,这为时过早 — 用户可能试图键入 600,它以 6 开头,小于 100。(抱歉,该评论是我将您的>
误读为<
。但基本思想仍然适用。)
相反,检查字段何时失去焦点 ( blur
) 或他们何时尝试以其他方式确认值。
当值太低时,我强烈建议不要清除该字段。 相反,让他们编辑值(也许他们只是在最后遗漏了一个0
)。
const Max_ava_water = 300; // Using `blur` event $('#input_rd').on("blur", function() { // Explicit conversion const value = this.value ? parseInt(this.value, 10) : NaN; // Note that `NaN` is never `>` anything if (value > Max_ava_water) { console.log("Enter less or Equal values") } });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <input type="number" id="input_rd" />
另请注意type="value"
对input
字段无效。 您可以像我上面那样使用type="number"
来触发浏览器对数字字段的标准处理,也许使用min
和max
进行范围检查。
旁注: val
返回一个字符串(或者undefined
如果你在一个空的 jQuery 集上调用它,但你不是)。 您的表达式依赖于>
将其隐式转换为数字。 >
确实这样做了,但通常最好是有意地进行转换,尤其是因为隐式转换的规则可能不是您想要应用的规则(例如, ""
转换为0
)。 我在这里的回答描述了您的各种选择及其优缺点。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.