所以我将 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/