gpt4 book ai didi

javascript - 带有动态 knockout 循环的 jQuerybUI datepicker()

转载 作者:搜寻专家 更新时间:2023-11-01 04:37:23 24 4
gpt4 key购买 nike

我有这个模板化的 knockout 循环:

<div id="accordion" data-bind="jqAccordion:{},template: {name: 'task-template',foreach: Tasks,afteradd: function(elem){$(elem).trigger('valueChanged');}}">.   </div> 

<script type="text/html" id="task-template">
<div data-bind="attr: {'id': 'Task' + TaskId}" class="group">
<h3><b><input name="TaskName" data-bind="value: TaskName /></b></h3>
<p>
Due Date: <input class="datepicker" data-bind="myDatepicker : {}, value: taskDueDate" />
</p>
</div>
</script>

其中 datepicker 是一个 jQuery Ui datepicker 函数:

ko.bindinghandler.myDatepicker =  $(function() {
init: function( element, valueAccessor) {

$(element).datepicker({
changeMonth: true,
changeYear: true
});
}),
etc.
}

为什么这不起作用?

症状是:日历正在显示并且小部件响应我的交互但没有日期返回到输入字段。有什么线索吗?

提前致谢!

最佳答案

您需要将一些 viewModel 属性绑定(bind)到日期选择器绑定(bind)...您在这部分想得太多了。

但是当日期选择器更改元素的值时,您确实需要做一些特殊处理,否则它会搞乱 knockout 通常拦截更改的方式。

像这样设置绑定(bind)...

HTML:

<div id="accordion" data-bind="jqAccordion:{},template: {name: 'task-template',foreach: Tasks,afteradd: function(elem){$(elem).trigger('valueChanged');}}">.   </div> 

<script type="text/html" id="task-template">
<div data-bind="attr: {'id': 'Task' + TaskId}" class="group">
<h3><b><input name="TaskName" data-bind="value: TaskName /></b></h3>
<p>
Due Date: <input class="datepicker" data-bind="myDatepicker : taskDueDate" />
</p>
</div>
</script>

处理程序是这样的:

ko.bindingHandlers.myDatepicker =  {
init: function(element, valueAccessor) {
var unwrappedObs = valueAccessor();
$(element).val(ko.unwrap(unwrappedObs));
$(element).datepicker({
changeMonth: true,
changeYear: true
});
ko.utils.registerEventHandler(element, "change", function () {
var unwrappedObs = valueAccessor(),
val = $(element).datepicker("getDate");
unwrappedObs(val);
});
}
};

这是一个 fiddle : http://jsfiddle.net/brettwgreen/nmb6c6gq/

关于javascript - 带有动态 knockout 循环的 jQuerybUI datepicker(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19035826/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com