当我按下回车键时,我有一个javascript代码来实现Jquery Calendar和一个按键事件来打开日历。
除了在chrome中输入键之外,第一个代码工作正常(如果我在事件触发器中按下另一个键)
function ImproveDateTextBoxs() {
$("img[id*=DatePickerImage]").closest(".ms-dtinput").remove();
$(".ms-dtinput input[id$='Date']").each(function () {
ImproveDate($(this));
$($(this).next('img')).wrap($("<A/>").attr("href","#"));
});
}
function ImproveDate(obj) {
// obj.focus(function () { obj.select(); });
if (typeof jQuery.ui.datepicker != "undefined") {
obj.datepicker({
showOn: 'button',
buttonImage: '/_layouts/images/calendar.GIF',
buttonImageOnly: true,
showOtherMonths: true,
selectOtherMonths: true,
showButtonPanel: true,
changeMonth: true,
changeYear: true,
onClose: function() {
$(this).next('a').focus();
}
});
obj.next('a').keypress(function (e) {
var key = e.which;
if(key == 13) // the enter key code
{
// e.preventDefault();
// console.log("hola");
$(this).children().click();
return false;
}
});
// obj.parent().next().children("a").removeAttr('onclick');
// obj.parent().next().children("a").click(function () { obj.select(); });
}
}
以下代码打开日历并立即再次隐藏(以及Chrome中的相同问题)
//Datepicker jquery ui
function ImproveDateTextBoxs() {
$("img[id*=DatePickerImage]").closest(".ms-dtinput").remove();
$(".ms-dtinput input[id$='Date']").each(function () {
ImproveDate($(this));
$($(this).next('img')).wrap($("<A/>").attr("href","#"));
$(this).next('a').keypress(function (e) {
var key = e.which;
if(key == 13) // the enter key code
{
// e.preventDefault();
// console.log("hola");
$(this).children().click();
return false;
}
});
});
}
function ImproveDate(obj) {
// obj.focus(function () { obj.select(); });
if (typeof jQuery.ui.datepicker != "undefined") {
obj.datepicker({
showOn: 'button',
buttonImage: '/_layouts/images/calendar.GIF',
buttonImageOnly: true,
showOtherMonths: true,
selectOtherMonths: true,
showButtonPanel: true,
changeMonth: true,
changeYear: true,
onClose: function() {
$(this).next('a').focus();
}
});
// obj.parent().next().children("a").removeAttr('onclick');
// obj.parent().next().children("a").click(function () { obj.select(); });
}
}