Javascript 防止在输入字段上单击事件
我正在为iPad开发PhoneGap应用程序。在一个屏幕上,您必须填写一个包含大约20个文本字段的表单。由于输入字段仅对单击事件(虽然延迟时间不长,但令人讨厌)作出反应,因此我尝试了以下方法:Javascript 防止在输入字段上单击事件,javascript,jquery,cordova,dom-events,Javascript,Jquery,Cordova,Dom Events,我正在为iPad开发PhoneGap应用程序。在一个屏幕上,您必须填写一个包含大约20个文本字段的表单。由于输入字段仅对单击事件(虽然延迟时间不长,但令人讨厌)作出反应,因此我尝试了以下方法: $('input[type="text"], input[type=number], input[type=date], input[type="tel"], input[type=password], input[type="email"],
$('input[type="text"], input[type=number], input[type=date], input[type="tel"], input[type=password], input[type="email"], input[type="url"], textarea, select').live("touchend", function(e) {
if(!swipe) {
$(this).focus();
}
swipe = false;
return false;
});
(我在touchmove
事件中检查刷卡)
这是可行的,但现在我想阻止输入上的原始单击事件。
问题是,当我使用.focus()
方法激活一个输入字段时,键盘会弹出,将页面向上滑动一点,然后触发单击事件,并在我所需输入的下方激活另一个输入字段
为了防止单击,我已尝试:
$('input[type="text"], input[type=number], input[type=date], input[type="tel"], input[type=password], input[type="email"], input[type="url"], textarea, select').live("click", function(e) {
return false;
});
但这也不起作用:(
有没有另一个技巧可以在我触摸输入字段后立即激活它而不延迟?您需要使用preventDefault来阻止默认操作:
$('input[type="text"], input[type=number], input[type=date], input[type="tel"], input[type=password], input[type="email"], input[type="url"], textarea, select').live("click", function(e) {
e.preventDefault();
});
文档:您可以试试这个
$('input, textarea, select').click(function(event) {
event.preventDefault();
});
这是停止传播
$('input[type="text"], input[type=number], input[type=date], input[type="tel"], input[type=password], input[type="email"], input[type="url"], textarea, select').live("click", function(event) {
event.stopPropagation();
});
我和你有同样的问题,并试图实现所有其他发布的解决方案,发现没有一个完全适合我。相反,我借鉴了以前所有解决方案的想法,发现这段代码解决了我的问题
$('input, textarea, select').click(function (event) {
event.stopPropagation();
});
追加新元素不单击功能:)是活动的(“单击”)更改。已经一年了。。你应该指定正确的答案