如何在jQuery中实现输入框值变化时记录新值?
解决输入框值变化时记录新值的问题
我帮你调整了代码,现在可以在输入框值发生变化时,同时在控制台记录日志和变化后的新值啦!
对应的HTML代码
<input type="number" id="n" value="5" step=".5"/>
修改后的JavaScript代码
$(":input").bind('keyup change click', function (e) { const currentValue = $(this).val(); const previousValue = $(this).data("previousValue"); if (!previousValue || previousValue !== currentValue ) { console.log(`值已变化,新值为:${currentValue}`); $(this).data("previousValue", currentValue); } }); $(":input").each(function () { $(this).data("previousValue", $(this).val()); });
代码说明
- 先把当前输入框的新值存到
currentValue变量里,让代码逻辑更清晰 - 用ES6模板字符串把新值直接嵌入到日志内容中,控制台就能直接看到变化后的具体数值
- 保留了你原有的核心逻辑:只有当之前存储的值和当前值不一致时才触发日志,避免了重复记录(比如按住步进按钮时不会重复输出相同内容)
这样不管你是通过键盘输入数字、点击输入框的步进按钮,还是直接修改输入框的值,控制台都会准确输出变化提示和对应的新值。
内容的提问来源于stack exchange,提问作者Snoopy
相关产品推荐
相关产品推荐

