【问题标题】:My input field is hearing every "keydown" event but the enter. I have a datepicker on it and am unsure whats going on我的输入字段正在听到每个“keydown”事件,但输入。我有一个日期选择器,但不确定发生了什么
【发布时间】:2012-07-03 18:06:12
【问题描述】:

我有这个表格可以接受来自 datepicker 的日期,或者你可以手动输入你自己的日期。我正在格式化任何输入日期以匹配 mm/dd/yyyy。我正在这样做,但我遇到了一个问题,当我按下回车键立即运行搜索时,输入的格式不正确,从而引发错误。如果我点击输入,日期选择器就会消失。如果我再次按回车键,那么输入字段会听到它。但是,当日期选择器可见时,输入字段会听到每隔一个按键。

        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()));
             }
        });

【问题讨论】:

标签: javascript jquery


【解决方案1】:

这就是答案。日期选择器在关闭时有自己的事件监听。谢谢@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()));
        });

【讨论】:

  • 感谢您花时间解决问题,然后将您的解决方案分享给其他人查看 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多