所以我在单页应用程序中将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());

为了获得敲除值的回报。

09-27 00:53