【问题标题】:Knockout not updating on input value changed with datepicker淘汰赛不更新输入值随日期选择器更改
【发布时间】:2014-03-27 12:43:54
【问题描述】:

所以我必须从用户那里收集日期和时间。我希望能够从一个选择器中设置两者。我通过好奇的解决方案here 找到了这个不错的解决方案。我们的网站使用 jQuery、jQuery mobile 和 Knockout。当我使用 datepicker 选择日期时,我的剔除绑定变量没有更新,即使输入框的值已更改。如果我使用 jQuery 来获取它显示的值就好了。

所以我的问题是:有人可以帮我弄清楚如何更新我的淘汰赛绑定吗?

我已经尝试将 valueUpdate 设置为 inputafterkeydown,但没有成功。

这是一个指向我制作的小提琴的链接,用于演示该问题:http://jsfiddle.net/TrueEddie/eg6zM/

【问题讨论】:

    标签: javascript jquery knockout.js datepicker


    【解决方案1】:

    在插件中,当设置元素的值时,需要触发change事件。

    类似:

    _setValueOfElement: function(sElemValue)
    {
        var dtPickerObj = this;
    
        var $oElem = $(dtPickerObj.dataObject.oInputElement);
        if(dtPickerObj._compare($oElem.prop("tagName"), "INPUT"))
            $oElem.val(sElemValue);
        else
            $oElem.html(sElemValue);
    
        //ADDED THIS LINE
        $oElem.change();
    
            return sElemValue;
    },
    

    该插件似乎没有内置任何事件,因此看起来没有一种好的方法可以对设置的值做出反应。

    【讨论】:

    • 非常感谢!那一行修复了它;)
    • 仅供参考,我在他们的 GitHub 项目中提交了更改,现在它是最新版本。
    • @TrueEddie - 啊- 很高兴听到这个消息!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-27
    • 1970-01-01
    • 1970-01-01
    • 2017-10-26
    • 2012-11-09
    • 1970-01-01
    相关资源
    最近更新 更多