【问题标题】:Update jQuery Datepicker UI without Changing the Associated Input在不更改关联输入的情况下更新 jQuery Datepicker UI
【发布时间】:2014-12-29 20:42:17
【问题描述】:

我目前正在做一个需要使用 jQuery datepicker 的项目。一切都很好,除了一个要求......用户需要能够输入“智能日期”。智能日期是一种简写语法,用于轻松生成未来或过去 X 天的日期。输入日期的语法是加号 (+) 或减号 (-) 后跟一个整数,表示从今天算起的天数。我已经在我的日期选择器配置中设置了constrainInput 标志,以允许用户输入符号。我的问题是:在输入数字字符的每个实例中,我希望日历更新以显示当前“选定”的日期,但是在您使用 setDate 操作时,日期选择器会控制输入并更改用户输入的文本。我钻研了一下源代码,发现_setDate方法有第二个参数叫noChange,但是通过以下方式传递标志没有效果:

$ele.datepicker('setDate', date, true);

我对 jQuery UI 和 datepicker 插件本身围绕这个组件抛出的各种抽象级别不够熟悉,所以我很难在不花太多时间挖掘源代码的情况下设计一个解决方案。

有没有人可以提供一些帮助?将不胜感激!

对于那些想看一些代码的人,你可以在这里查看我的 codepen:'Smart Date Module'

第二个输入是用户输入,第一个是支持 Angular 的模型。

【问题讨论】:

    标签: angularjs jquery-ui datepicker


    【解决方案1】:

    也许我误解了你的问题,但你为什么不在调用 datePicker setDate 后将用户值设置回输入?这将在每次按键后更新 datePicker 日期,并将用户值保留在输入中:

    $($ele[0]).datepicker('setDate', date);
    $ele.val(value);
    

    我更新了您的 codepen 以反映更改。

    如果这不是您所期望的,请告诉我。

    【讨论】:

    • 这正是我正在寻找的功能类型。我没有意识到“答案”会如此简单。我将答案放在引号中,因为我仍然觉得它有点 hacky,但更多地考虑它,我没有看到任何长期问题。我想我担心反馈循环,但是由于设置输入的值不会触发更改事件,所以它可以工作。去搞清楚!感谢您的帮助!
    猜你喜欢
    • 2015-05-18
    • 2017-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-17
    相关资源
    最近更新 更多