【发布时间】:2012-11-24 12:29:45
【问题描述】:
我使用了一个 knockout.js 模板脚本来创建一个可以复制和删除的表单。小提琴可以在here找到。
我在 SE 的帮助下编辑了脚本以添加 jquery-ui 日期选择器。可以在 [这里][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");
});
}
};
现在我们也开始了。当您在框外单击时,日期选择器不会关闭。这发生在任何浏览器中。
其他问题
-
我使用这个(和许多其他的)来自动更正一个字段。在这种情况下,输入大写。这在第一种形式上效果很好。但不能在任何重复的表格上。
$(".hoofdletters").keyup(function(e) { $(".hoofdletters").val(($(".hoofdletters").val()).toUpperCase()); });
-
当我使用 uniqueName: true 时,每个字段(也包括重复的表单)都会得到验证。但是我的 $_POST 名称都被重命名了。我想要原始字段名称,例如 year[] 而不是 ko_unique_1。删除 uniqueName 时有效,但重复的表单不再有效。
[2]:http://jsfiddle.net/QUxyy/5/
enter code here
【问题讨论】:
-
删除“console.log”指令应该可以正常工作。出于某种原因,当控制台打开时(F12),IE 只接受 console.log。
-
谢谢!如果您将其添加为答案,我可以接受。我现在投了赞成票。您还知道为什么日期选择器保持打开状态吗?以及如何使用 dd-mm-yyyy 而不是 mm-dd-yyyy?
-
将 console.log 更改为 window.console.log 使代码与所有浏览器兼容,并为支持它的人保留控制台日志
-
谢谢,会试试的!我投了赞成票。您能否也检查一下我的其他问题?提前谢谢!
标签: jquery jquery-ui internet-explorer knockout.js datepicker