使用jquery don'更新字段;t更新可观察到的
Update field with jquery don't update observable
我想向stackoverflow社区问好。
几天前我刚开始使用淘汰赛。
好吧,我正在用它为我正在工作的CMS制作一个动态菜单生成器。
这是代码:http://jsfiddle.net/dnlgmzddr/HcRqn/
问题是,当我从选择框中选择一个元素时,输入字段会像我预期的那样更新,但可观察到的并不能反映出变化。因此,添加按钮未启用。
我错过了什么?我该怎么修?
谢谢。
当您填充url字段时,您需要触发更改事件来更新可观察项。所以,你可以做:
$("#url").val('/pages/' + id).change();
另一个更符合淘汰精神的选择是在你的选择上使用绑定。在这种情况下,您可能希望用该值填充可观察项,然后使用手动订阅将格式化的值默认输入到输入字段中。
this.itemUrl = ko.observable();
this.selectedUrl = ko.observable();
this.selectedUrl.subscribe(function(newValue) {
if (newValue) {
this.itemUrl("/pages/" + newValue);
}
}, this);
然后,将您的选择绑定到selectedUrl
:
<select id="pagedList" data-bind="value: selectedUrl">
<option value=""><option>
<option value="test">Test</option>
</select>
以下是一个示例:http://jsfiddle.net/rniemeyer/HcRqn/21/
如果你的选项的"值"是url,你也可以取消额外的可观察和手动订阅。
在您的代码中,当选择字段时,我看不到实际启用按钮的位置。所以我可能会错过一些东西,但只要启用更改按钮即可。如下所示:
function LoadMenu() {
$("#pagedList").change(function () {
var id = $(this).val();
$("#url").val('/pages/' + id);
// remove the disabled attribute here
$('button.space').removeAttr('disabled');
});
}
相关文章:
- 下拉列表未从计算的可观察项更新
- 可观察元素数组未更新
- 如何在 Knockout.js 中更新可观察数组后立即使用 DOM 容器
- 更新挖空中可观察数组中项目的属性
- 挖空映射:加载数据后,父模型中的计算可观察量不会更新
- 对可观察数组foreach的更新删除了格式化knockoutjs
- 当通过Ajax成功回调更新可观察数组时,启用绑定中断
- 自定义指令中的ng类不观察更新
- 剔除不更新辅助表的可观察数组
- 正在更新Knockoutjs可观察数组项
- 敲除可观察数组并没有更新从数组中移除元素的视图
- 在小间隔内通过javascript更新css时,会出现断断续续的动态观察动画
- 无限循环当观察父对象时,观察者不更新任何值
- 剑道可观察在触发更改事件后不更新
- 正在更新挖空.js可观察数组元素值
- 当可观察数组是其他模型的属性时,挖空不会更新 UI
- 自定义绑定到可观察数组,不调用更新函数
- KnockoutJs 更新视图模型可从 Json Web 服务中观察到
- 使用 ko.mapping.fromJS 更新异步 ajax 调用后可观察的淘汰表
- Emberjs更新/观察者/运行循环