【发布时间】:2021-08-01 19:11:59
【问题描述】:
我有一个输入 (type=text),我想检查该值在更改后是否有效。目前我是这样做的:
<input type="text" onkeypress="return validateInput(event)"></input>
function validateInput(event) {
var ascii = event.keyCode;
if(ascii == 0) {
return false;
}
}
问题是,我不仅需要检查输入的字符是什么,还需要检查它在字符串中的添加位置。因此我想知道输入的新值,但onkeypress 事件似乎没有这样的属性。 onchange 事件将允许我获取新值并将其与旧值进行比较,但随后我将无法通过返回 false 来取消事件。
有没有办法将取消事件和知道新值(或在当前字符串中添加新字符的位置)结合起来?
【问题讨论】:
-
为什么需要
return false,它是如何阻止你使用onchange的 -
嗯,返回
false就是取消onkeypress事件,不是吗?随着onchange事件返回false不会取消该事件,无论如何都会添加新字符。 -
好的,如果你使用按键,你使用
event.preventDefault()而不是return false -
您可以参考@Guerric 的回答。这是正确的做法
标签: javascript html dom-events html-input