移动网络应用上的Keyup似乎仍然不能覆盖内容块
keyup on mobile web apps seems to still not override a content block
我有一些输入,我从输入文本框上的keyup事件获得。
$(selector).keyup(function(){
var str = $(this).val();
var X = 2;
var Y = 1;
$(this).val(str.substring(X,Y));
});
在标准的webapp中查看时,$(this).val()没有新按下的键。我应该关注生命周期的哪一部分?当在一个web应用程序中这样做时,它似乎按计划执行,但在iOS webview/移动应用程序中使用它时却不是这样
编辑:似乎这些侦听器的生命周期实际上是不同的。在执行keyup时,它将$(this).val()识别为旧内容加上新字符,而在移动设备上,它只识别旧内容。新字符很容易通过以下方式获得:
String.fromCharCode(event.which)
但是在生命周期的那个点,我不能说不删除它。我正在研究其他事件的想法,以及做像event.preventDefault();或event.stopPropagation();之类的事情,但我不确定该去哪里。
知道如何工作和处理这类事件,或监听器将是伟大的。与我目前的逻辑,它是需要的,当我有新的内容集。也许一个简单的on("input")就足够了?
指导高度赞赏。:)
关于keyup()的页面文档:
对于捕获实际的文本输入,.keypress()可能是更好的选择。
解决我的编码问题:
1)将事件从keyup更改为keypress。2)执行以下操作:
var reg = new RegExp("''D");
if(reg.test(String.fromCharCode(event.which))){
var str = $(this).val();
var strArr = str.split("");
// for handling when people maintain the press,
// i created a range array to delete the range.
strArr.splice(cRange[0], cRange[1]-cRange[0]+1);
str = strArr.join("");
$(this).val(str);
event.preventDefault();
}
相关文章:
- 不能从angular2中的子组件指定父组件中的数组
- AngularJS UI路由器不能像ng路由器那样工作
- HTML5音频加载和播放获胜'我不能在iPad上工作
- 为什么在 JavaScript 中不能用函数变量覆盖字符串变量
- 不能使用 javascript 用 !important 覆盖高度
- Tic-Tac-Toe:Sqaure不能被覆盖
- 在requireJS中,以后定义命名模块不能覆盖以前的模块
- 不能覆盖主干保存成功处理程序
- 图像库与覆盖和html内部不能覆盖正确的图像.jquery
- 不能覆盖连接
- Javascript复合模式,不能正确使用覆盖的方法
- 为什么在原型中添加一个函数不能覆盖JavaScript中原来的函数定义?
- Firefox扩展不能覆盖元素事件
- 当model '编译后不能覆盖' User '模型;& # 39;编译一次(或者我已经监督了一些东西)
- 构造函数的原型不能覆盖公共成员,这是真的吗?
- 当菜单被访问时,CSS覆盖不能正常工作
- 移动网络应用上的Keyup似乎仍然不能覆盖内容块
- Spree -不能覆盖js.咖啡文件
- JMVC jQuery.Model - 不能覆盖标准的 REST URL
- Jstree免打扰插件:不能在目标上拖放多个节点而不覆盖之前拖放的节点