与jQuery UI的日期选择器的工作原理无处不在,除了IE Knockout.js(Knockou

2019-07-04 15:57发布

我用了一个knockout.js templatescript创建可被复制和删除的形式。 小提琴可以发现在这里 。

我与SE利特尔帮助添加一个jQuery UI的日期选择器editted脚本。 小提琴的短版可以[点击这里] [2]找到。 到目前为止好,但在测试中,我发现那一切都是在任何浏览器的工作原理,除了IEXPLORER(各种版本)。

问题是在这个特定的部分,但我不知道在哪里。

script type='text/javascript'>//<![CDATA[ 
ko.bindingHandlers.datepicker = {
    init: function (element, valueAccessor, allBindingsAccessor) {
        var options = allBindingsAccessor().datepickerOptions || {};

        console.log("datepicker");                        
        $(element).datepicker(options);

        //handle the field changing
        ko.utils.registerEventHandler(element, "change", function () {
            var observable = valueAccessor();
            observable($(element).datepicker("getDate"));
        });

        //handle disposal (if KO removes by the template binding)
        ko.utils.domNodeDisposal.addDisposeCallback(element, function () {
            $(element).datepicker("destroy");
        });

    }
};

另外现在我们在这。 当您单击框外的日期选择器不会关闭。 这发生在任何浏览器。

其他问题

  1. 我用这个(以及其他许多)自动更正字段。 在这种情况下大写输入。 这第一种形式的做工精良。 但是,并非任何重复的形式。

    $( “hoofdletters。 ”)KEYUP(函数(E){$(“ hoofdletters。 ”)VAL(($(“ hoofdletters。”)VAL())toUpperCase());。。。})。

  2. 当我使用uniqueName:真正的,每场(也复制形式)将得到验证。 但我的$ _ POST名字都被重命名。 我想记事的原始字段名称,例如一年[]而不是ko_unique_1。 删除uniqueName的时候,但随后将复制的形式不要再验证工作。

    [2]: http://jsfiddle.net/QUxyy/5/ enter code here

Answer 1:

  1. 如果要对IE浏览器的代码工作:删除“的console.log”指令
  2. 要更改日期格式,你可以定义这样一个有约束力的:

    数据绑定= '日期选择器:beschikkingsdatum,datepickerOptions:{DATEFORMAT: “DD / MM / YY”},uniqueName:真'



Answer 2:

两件事情:

像我在评论中说,使用window.console.log(或包装函数),而不是执行console.log以防止旧的浏览器,谁也不知道控制台对象错误。

我用这个(以及其他许多)自动更正字段。 在这种情况下大写输入。 这第一种形式的做工精良。 但是,并非任何重复的形式。

更换:

$(".hoofdletters").keyup(function(e) { $(".hoofdletters").val(($(".hoofdletters").val()).toUpperCase()); });

有:

$(".hoofdletters").on('keyup', '#<some root element>', function(e) { $(".hoofdletters").val(($(".hoofdletters").val()).toUpperCase()); });

这样就保证了未来元素收到KEYUP处理程序所需的根元素限制DOM监测范围为上的功能。 理想情况下,这将是一个DIV元素



文章来源: Knockout.js with jquery ui datepicker works everywhere except IE