我使用日期选择器为2个日期选择日期....当点击退格我清除文本框值....在Firefox中它工作正常但在chrome中它重定向到我的上一页。
$().ready(function() {
var dates = $("#TestDateFrom, #TestDateTo").datepicker({
changeMonth: true,
numberOfMonths: 1,
onSelect: function(selectedDate) {
var option = this.id == "TestDateFrom" ? "minDate" : "maxDate",
instance = $(this).data("datepicker"),
date = $.datepicker.parseDate(
instance.settings.dateFormat ||
$.datepicker._defaults.dateFormat,
selectedDate, instance.settings);
dates.not(this).datepicker("option", option, date);
}
});
$("#TestDateFrom").keypress(function(e) {
switch (e.keyCode) {
case 8:
$("#TestDateFrom").val(""); // backspace
break;
default:
e.preventDefault();
break;
}
});
$("#TestDateTo").keypress(function(e) {
switch (e.keyCode) {
case 8:
$("#TestDateTo").val(""); // backspace
break;
default:
e.preventDefault();
break;
}
});
})
答案 0 :(得分:4)
事件在jquery中触发按键,按键向下键依赖于浏览器..因此在所有三个事件中触发事件以获得稳定的结果...
试试这个
$().ready(function() {
var dates = $("#TestDateFrom, #TestDateTo").datepicker({
changeMonth: true,
numberOfMonths: 1,
onSelect: function(selectedDate) {
var option = this.id == "TestDateFrom" ? "minDate" : "maxDate",
instance = $(this).data("datepicker"),
date = $.datepicker.parseDate(
instance.settings.dateFormat ||
$.datepicker._defaults.dateFormat,
selectedDate, instance.settings);
dates.not(this).datepicker("option", option, date);
}
});
$("#TestDateFrom").keyup(function(e) {
switch (e.keyCode) {
case 8:
$("#TestDateFrom").val("");
e.preventDefault(); // backspace
break;
default:
e.preventDefault();
break;
}
});
$("#TestDateFrom").keydown(function(e) {
switch (e.keyCode) {
case 8:
$("#TestDateFrom").val(""); //
e.preventDefault();
break;
default:
e.preventDefault();
break;
}
});
$("#TestDateFrom").keypress(function(e) {
switch (e.keyCode) {
case 8:
$("#TestDateFrom").val(""); // backspace
e.preventDefault();
break;
default:
e.preventDefault();
break;
}
});
$("#TestDateTo").keypress(function(e) {
switch (e.keyCode) {
case 8:
$("#TestDateTo").val(""); // backspace
e.preventDefault();
break;
default:
e.preventDefault();
break;
}
});
$("#TestDateTo").keyup(function(e) {
switch (e.keyCode) {
case 8:
$("#TestDateTo").val(""); // backspace
e.preventDefault();
break;
default:
e.preventDefault();
break;
}
});
$("#TestDateTo").keydown(function(e) {
switch (e.keyCode) {
case 8:
$("#TestDateTo").val(""); // backspace
e.preventDefault();
break;
default:
e.preventDefault();
break;
}
});
})
答案 1 :(得分:0)
这对我有用,但我的日期选择器文本框设置为只读。不希望用户能够输入日期。我创建了一个委托事件监听器来处理所有"密钥"两个datepicker文本框的事件。
$(document).on('keypress keydown keyup', '#txtDtFrom, #txtDtTo', function (e){
if (e.keyCode == 8) e.preventDefault();
});
如果您想稍微简化选择器,还可以为所有日期选择器文本框添加一个类。