所以我在单页应用程序中将KnockoutJS与KO Mapping Plugin一起使用,并且一切正常……除了...
推荐站点可以选择在查询字符串中发送一些值以预填充几个文本框。我有一个解析查询字符串并使用jQuery val()填充KO绑定文本框值的JS函数。但是,永远不会设置该值。
这是我正在尝试的一些伪代码...
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绑定的隐藏字段的值,并且效果很好。
最佳答案
它对$("#jobTitle").val(jobTitle)
不起作用的原因是因为jobTitle敲除数据绑定实际上是该函数。如果您当时要检查代码中的内容并查看返回的职位,您将看到它是一个函数。您需要使用$("#jobTitle").val(jobTitle());
为了获得敲除值的回报。