【发布时间】:2015-07-27 00:26:08
【问题描述】:
我正在使用基于 Angular 和 jquery 的网站。我有一个用于验证浮点数数组的文本输入字段。我的要求是限制用户输入字母等。
问题是我正在使用e.preventDefault(),但它不能在 android 默认浏览器中运行,但在 android chrome 中运行良好。
我搜索了很多,但没有得到任何解决方案。
我的示例代码:-
$('#test').keydown(function (e) {
e.stopPropagation();
e.preventDefault();
e.returnValue = false;
e.cancelBubble = true;
return false;
});
我也试过了:-
$('#test').keydown(function (e) {
if (e.preventDefault) {
e.preventDefault();
} else {
e.returnValue = false;
}
});
注意:- 我不能使用keypress 事件,因为安卓默认浏览器无法监听这个事件。
【问题讨论】:
-
您是否尝试过使用
input type="number"支持它现在很常见:caniuse.com/#feat=input-number -
我不能使用
type=number,因为验证是针对可以接收-/+/,/的数组浮点数。还。数字键盘不允许我输入这些键。 -
使用'event.preventDefault'代替e。因为在 ANDriod e 中是未定义的
-
再看一下 jQuery 文档。 jQuery 处理程序接收的参数不是原始事件对象。它总是有
preventDefault和stopPropagation,即使底层浏览器没有,在上面设置returnValue或cancelBubble是没有意义的。 -
@JqueryKing:呃,不,如果用户正在使用 jQuery,则不会。
标签: javascript android jquery html angularjs