0

私の JQgrid では、インライン セル編集を使用していますUncaught Type error

エラーは次のとおりです。

Uncaught TypeError: Cannot read property 'dpDiv' of undefined jquery-ui-1.8.19.custom.min.js:65

私が間違っていると信じているのは、datepicker フィールドの keydown イベントが発生し、実行時にdpDivnull であることが判明することです。これも克服するために、Tabキーが押されるたびにキーダウンイベントを破棄しようとしましたが、ここではうまくいきません..

これは、このエラーを生成する私がやっていることです:

 afterEditCell: function (id, name, val, iRow, iCol) {
            var cModel = $grid.jqGrid("getGridParam", "colModel");
            var currCol = cModel[iCol].name;

                var $row = $grid.find('.jqgrow#' + id);
                var $columns = $row.find('td');
                $td = $($columns[iCol]);

                if (isAnyDate(iCol)) {
                $td.find('input').addClass('textBoxStyle').datepicker().keyup(function (e) {
                        var code = e.which || e.keyCode;
                        if (code == 9)
                            $(this).datepicker('destroy');
                    });
                }

});

セル ナビゲーションにマウス クリックを使用すると、正常に動作します。

誰か助けて?

4

1 に答える 1

0

キーのイベントを取得していない可能性があります。これを試してください:

代わりに、またはを使用してkeyupみてくださいkeypresskeydown

if (isAnyDate(iCol)) {
    $td.find('input').addClass('textBoxStyle').datepicker().keydown(function (e) {
       var code = e.which || e.keyCode;
       if (code == 9)
          $(this).datepicker('destroy');
    });
 }

またはこれ:

if (isAnyDate(iCol)) {
     $td.find('input').addClass('textBoxStyle').datepicker();
     $(document).on('keydown', '.textBoxStyle', function(e) {
         var code = e.which || e.keyCode;
         if (code == 9)
            $(this).datepicker('destroy');
     });
 }

フィドラーで試してみました: http://jsfiddle.net/VMuhK/1/

これを試して、役立つかどうかを確認してください。

于 2012-12-27T06:39:12.923 に答える