1

datepicker からの日付を受け入れるこのフォームがあります。または、独自の日付を手で入力することもできます。mm/dd/yyyy に一致するように入力日付をフォーマットしています。私はぼかしからそれをやっていますが、Enterキーを押してすぐに検索を実行すると、入力が正しくフォーマットされず、エラーがスローされるという問題に遭遇しました。Enter キーを押すと、日付ピッカーが消えます。もう一度Enterキーを押すと、入力フィールドにそれが聞こえます。ただし、入力フィールドでは、日付ピッカーが表示されている間、キーダウンが 1 つおきに聞こえます。

        var $callSearchEndDate = $j('#call-search-end-date');
        $callSearchEndDate.datepicker();
        $callSearchEndDate.blur(function() {
            if (!utility.isNotEmpty($callSearchEndDate.val())) {
                $callSearchEndDate.datepicker('setDate', new Date());
            }
            $j(this).val(checkDate($j(this).val()));
        }).bind('keypress', function(e){
             var code = (e.keyCode ? e.keyCode : e.which);
             console.log('key code = ' + code);
             if(code === 13) { 
                 $j(this).val(checkDate($j(this).val()));
             }
        });
4

1 に答える 1

3

これが答えです。日付ピッカーには、閉じるときにリッスンする独自のイベントがあります。ありがとう @TheZ

// Call Search "End Date" datepicker
        var $callSearchEndDate = $j('#call-search-end-date');
        $callSearchEndDate.datepicker({
            onClose : function(){
                $j(this).val(checkDate($j(this).val()));
            }
        });
        $callSearchEndDate.blur(function() {
            if (!utility.isNotEmpty($callSearchEndDate.val())) {
                $callSearchEndDate.datepicker('setDate', new Date());
            }
            $j(this).val(checkDate($j(this).val()));
        });
于 2012-07-03T18:31:15.673 に答える