1

Jeditable と datepicker を使用してインライン編集を使用しています。テーブルに日付をハイパーリンクとして表示する列があります。これをクリックすると、日付ピッカーが表示されます。特定の日付が選択されると、バックエンドで更新され、セルが変更された値で更新されます。ただし、月または年を変更しているときに onblur イベントに問題があります。このイベントは、datepicker コントロールの [前へ] または [次へ] ボタンをクリックするとトリガーされます。これにより、日付が選択されたときに例外が発生します。選択した日付が現在の月にある限り、これは問題なく機能します。ここにリストされているすべての可能な解決策を試しました:

stackoverflow.com/questions/2007205/jeditable-datepicker-causing-blur-when-change-month

settimeout の場合、コントロールは、datepicker を閉じるか、真の onblur イベントで通常のハイパーリンクに戻りません。

ここに私のコードがあります、

$.editable.addInputType('datepicker', { element : function(settings, original) { var input = $(''); if (settings.width != 'none') { input.width(settings.width); } if (settings.height != 'none') { input.height(settings.height); } input.attr('autocomplete','off'); $(this).append(input); return(input) ; }, プラグイン : function(settings, original) { var form = this;

    settings.onblur = function(e) { 
        t = setTimeout(function() {
         original.reset.apply(form, [settings, self]);
        }, 100);
     };

    $(this).find('input').datepicker({
        changeMonth: true,
        changeYear: true,
        dateFormat: 'dd-M-y',
        closeAtTop: true,
        onSelect: function(dateText) { $(this).hide(); $(form).trigger('submit'); }
    });            
},
submit  : function(settings, original) { }

});

$(function() { $('.edit_eta').editable('update_must_fix_eta.php', { id: 'bugid', name: 'eta', type: 'datepicker', event: 'click', select : true , width: '50px', onblur:'cancel', cssclass : 'editable', indicator : '到着予定時刻を更新中です.しばらくお待ちください.', style : 'inherit', submitdata:{version:'4.2(4)',tag: 'REL_4_2_4',qstr:1} }); });

このリンクに記載されているように、jeditable.js をハッキングしてみました: http://groups.google.com/group/jquery-dev/browse_thread/thread/265340ea692a2f47

これでも役に立ちません。

どんな助けでも大歓迎です。

4

2 に答える 2

1

はい、同じものを使用していました。前月と翌月にそれぞれ移動する Prev ボタンと Next ボタンを無効にする必要がありました。リンクをクリックすると 3 か月のカレンダーが表示され、ユーザーがこれらの 3 か月のいずれにも該当しない日付を入力したい場合は、入力テキスト ボックスを編集可能にして手動で入力できるようにします。それは私の問題を解決しました。

于 2011-05-08T04:17:06.173 に答える