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のヘッダーには、カレンダーに沿って手動で移動するための矢印とともに、年用と年用の2つの選択が含まれている必要があります。問題は、selectのオプションを表示できないことです。マウスのクリックに反応しないだけです。矢印は機能するので、一度に1か月ずつ前後に移動できますが、これらのオプションを使用するという考えは、そうする必要はありません。
jqGridの編集フォームの外に、同じ関数を使用してDatePickerがアタッチされた別のフィールドがあります。正しく動作するので、問題はjqGridのイベント処理にあると思います。
何か案は?
ありがとう
UPD
Firefoxでは正常に動作しますが、IE9-7でもChromeでも動作しません。
UPD2
datepickerを使用した入力のコードと、その機能を使用するようにjqGridを設定する方法を使用してjsFiddleの例を作成しました:http://jsfiddle.net/rUkyF/