我已经定制了 jqGrid 的编辑表单,让一些字段使用 jQuery 的 DatePicker 来填充它们。我在 colModel 选项中对其进行了如下配置:
colModel: [
...
{ name: 'Column', editable: true, index: 'Column', width: width,
align: "center", editrules: { integer: true, required: true },
editoptions: { size: 5, dataInit: function (el) {
setTimeout(function () {
SetDatepicker('input[name^="' + el.name + '"]');
}, 100);
} },
formoptions: { rowpos: 1 }
},
...
],
这是可行的,只要它在单击输入字段时部署 DatePicker 日历。
不是 SetDatepicker 函数如下所示:
function SetDatepicker(control) {
$.datepicker.setDefaults($.datepicker.regional['es']);
$(control).datepicker({
changeMonth: true,
changeYear: true,
monthNamesShort: ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"]
});
}
它已将 changeMonth 和 changeYear 设置为 true,因此 DatePicker 在其标题中应该有两个选择,一个用于年份,一个用于年份,以及手动沿日历移动的箭头。问题是,无法显示选择的选项:它们只是对鼠标单击没有响应。箭头可以发挥作用,因此您可以一次向前和向后移动一个月,但使用这些选项的想法不必这样做。
我有另一个字段,在 jqGrid 的编辑表单之外,它也使用相同的函数附加了一个 DatePicker。它工作正常,这让我认为问题出在 jqGrid 的事件处理上。
有任何想法吗?
谢谢
UPD
它在 Firefox 中运行良好,但在 IE9-7 和 Chrome 中却不行。
UPD2
我创建了一个 jsFiddle 示例,其中包含 datepicker 输入的代码以及我如何设置 jqGrid 以使用该功能:http: //jsfiddle.net/rUkyF/