【发布时间】:2017-02-02 20:30:11
【问题描述】:
event.preventDefault() 在 Chrome Android 操作系统上不起作用。而同样的动作正在 chrome IOS 上运行。 我什至使用了 event.stopPropagation(), event.stopImmediatePropagation()。
HTML:
<input class="otherAmount" type="text"id="pVal" name="pVal" onkeydown="validatePaymentToTwoDecimal(this,event);"/>
Java 脚本:
function validatePaymentToTwoDecimal(el, evt) {
if(!$.isNumeric(evt.key)|| evt.key=="."){
evt.preventDefault();
evt.stopPropagation();
evt.stopImmediatePropagation();
return false;
} else {
return true;
}
}
【问题讨论】:
-
您正在处理哪种类型的事件?
-
keydown。虽然 onKeyDown 返回 false,但我仍然在 html 字段中看到键值。最初我尝试使用 Keypress。 Keypress 不适用于 android,但适用于 IOS。所以移到keydown
-
你的代码在哪里?
-
if(!$.isNumeric(evt.key)){ evt.preventDefault(); evt.stopPropagation(); evt.stopImmediatePropagation();返回假; }
-
是否定义了
evt?显示所有相关代码并提供minimal reproducible example
标签: javascript