我正在使用jQueryUI日期选择器,当用户点击文本框并按Enter键时,将填充当前日期。我想避免这种情况。我试过这个:
$('#datepicker').on('keypress', function(e){
if (e.which == 13) {
e.preventDefault();
e.stopPropagation();
return false;
}
});
没有运气
的链接答案 0 :(得分:3)
试试这个:
$("#datepicker").keydown(myfunction); // use keydown
function myfunction(e) {
if(e.keyCode === 13) {
e.stopPropagation();
e.preventDefault();
return false;
}
}
答案 1 :(得分:2)
这里的一些解决方案似乎起作用,因为它们会抛出某种异常。
有两件事似乎可以让它发挥作用而不会抛出异常。
如“Charly H”所述,keydown绑定必须在调用datepicker之前发生。
然后在keydown处理程序中调用e.stopImmediatePropagation()
。 E.g。
$('#datepicker').bind('keydown',function(e){
if (e.which == 13)
e.stopImmediatePropagation();
})
.datepicker();
答案 2 :(得分:0)
试试这个:
$('#datepicker').keypress(function(e){
if (e.keyCode == 10 || e.keyCode == 13) //10 is Line Feed and 13 is Carriage Return
e.preventDefault();
});
答案 3 :(得分:0)
如果您无法停用回车键,则可以解决此问题...您可以从"#datepicker"
移除焦点,检查以下更新的小提琴https://jsfiddle.net/shalini456/zwjzo175/4/
<强>的jQuery 强>
$(document).ready(function(){
$( "#datepicker" ).datepicker();
$("#datepicker").on('click', function(){
$("#datepicker").blur();
});
});
答案 4 :(得分:0)
我缩短了Bhupesh Kushwaha的解决方案,他在评论中提供了
$(function() {
$("input").bind('keydown', function (e) {
if (event.which == 13) {
$(this).trigger(e);
return false;
}
}).datepicker();
});
答案 5 :(得分:0)
人,
我知道这可能为时已晚,但唯一对我有用的解决方案是来自“Charly H”的解决方案,在声明datepicker之前,他将代码绑定到输入文本。
我猜的原因是气泡传播及其优先级。
代码如下所示:
$(function() {
$("input").bind('keydown', function (e) {
if (event.which == 13) {
e.preventDefault();
e.stopPropagation();
$(this).trigger(e);
return false;
}
}).datepicker();
});