【问题标题】:jQuery Datepicker only shows oncejQuery Datepicker 只显示一次
【发布时间】:2012-04-09 06:34:14
【问题描述】:

我在表单上有一个文本框,我创建了一个这样的日期选择器:

$("#txtBirthDate").datepicker({
                    changeMonth: true,
                    changeYear: true,
                    yearRange: '1920:2999',
                    maxDate: '+0d',
                    dateFormat: 'dd-mm-yy'
        });

这很好用,但发生的事情是:

我按下文本框,日期选择器很好地出现,选择一个日期。但是如果我想选择另一个日期,我首先需要单击另一个字段,然后再单击生日字段。当我第二次按下生日字段而不先点击另一个字段时,日期选择器不显示..

我在这里错过了什么?

HTML 代码:

<label>Birthdate</label>
<input type="text" name="txtBirthDate" id="txtBirthDate" class="input" readonly='true' value="<?echo $_POST["txtBirthDate"]; ?>" />

【问题讨论】:

  • 好的,我已经添加了 HTML 代码...
  • 我已经试过你的代码并且它工作正常,我用 $(function() { }); 包装了你的 JS 代码你有吗?也许是旧版本的 jquery ?因为对我来说,它正在继续……
  • 是的,我已经将它包装在 $(function(){});我知道 jquery 的原始演示也可以工作,我想可能是因为我使用了文本框的自定义样式,但我不确定....
  • 将代码复制到只有日期选择器和文本字段的空白页中,如果可行,问题可能在其他地方
  • 好的,我会检查我是否能找到问题。一旦我找到它,我会发布解决方案。如果有人还有其他选择,请告诉我!到目前为止,谢谢riso!

标签: php javascript jquery html jquery-ui


【解决方案1】:

对我有用的非常简单的答案是包含这一行

 $('#ui-datepicker-div').remove();

在初始化您的日期选择器元素之前。

【讨论】:

    【解决方案2】:

    好的,问题是重点。选择日期后,该字段没有失去焦点。解决方法:

    $("#txtBirthDate").datepicker({
        changeMonth: true,
        changeYear: true,
        yearRange: '1920:2999',
        showButtonPanel: true,
        maxDate: '+0d',
        dateFormat: 'dd-mm-yy',
        onClose: function(dateText, inst) { 
            setTimeout(function(){
                $("#txtBirthDate").blur();
            }, 200);
        }
    });
    

    感谢您尝试与我一起解决问题!

    【讨论】:

      【解决方案3】:

      它发生在我身上一次,只需关注文章,看看有什么不同,但我认为你错过了:

       showButtonPanel: true,
      

      在您的代码中。谢谢

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多