jquery - 使用 jQuery val() 更新 KnockoutJS 绑定(bind)文本框

标签 jquery knockout.js knockout-mapping-plugin

所以我将 KnockoutJS 与 KO Mapping Plugin 一起使用在单页应用程序中,一切都很好...除了...

引用站点可以选择发送查询字符串中的一些值来预填充几个文本框。我有一个 JS 函数,它解析查询字符串并使用 jQuery val() 填充 KO 绑定(bind)文本框值。但是,该值永远不会被设置。

这是我正在尝试的一些伪代码...

var jobTitle = "Ninja";

$("#jobTitle").val(jobTitle); // doesn't work

$("#jobTitle").val(jobTitle).change(); // doesn't work

$("#hiddenJobTitle").val(jobTitle); // works

标记

<input id="jobTitle" type="text" data-bind="value: JobTitle" />

<input id="hiddenJobTitle" type="hidden" data-bind="value: JobTitle" />

有趣的说明:我使用相同的代码来设置 KO 绑定(bind)隐藏字段的值,并且效果很好。

最佳答案

它对 $("#jobTitle").val(jobTitle) 不起作用的原因是因为 jobTitle knockout 数据绑定(bind)实际上是函数。如果您要检查代码中的这一点并查看返回的 jobtitle,您会发现它是一个函数。您需要使用 $("#jobTitle").val(jobTitle());

为了得到 knockout 值的返回。

关于jquery - 使用 jQuery val() 更新 KnockoutJS 绑定(bind)文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16468615/

相关文章:

javascript - 尝试动态使用 jOrgChart

php - 如何将值从 Jquery 传递到 PHP? HTML 是一个隐藏的输入表单字段

jquery - 防止 iOS 捏合事件注册为点击

jQuery-ui 和 roundabout 冲突

javascript - KnockoutJS 可使用 Foreach 进行 knockout 排序

Javascript 迭代一组属性

jquery - 将可排序索引值绑定(bind)到 knockout View 模块

javascript - knockout 和原型(prototype)无法正常工作

knockout.js - knockout 手动订阅不会在下拉列表更改时触发

javascript - 推迟或暂停评估 knockout 中的依赖关系,直到 View 模型完全更新(例如使用映射插件)