我正在构建一个可编辑的网格。 礼品名称是一个自动建议文本框。
当我选择一个值并尝试检索该值时,它没有显示该值。 我的代码是[这里](http://jsfiddle.net/bhagirathip/x6H8s/38/)
在文本框中选择一个值,然后单击“提交”按钮。 它应该显示第一个文本框值,但它显示为null。
我犯了错误。
- 提前谢谢
答案 0 :(得分:2)
这里真正的问题似乎是当你使用jQuery的自动完成时name
没有正确更新。您应该更改name
的绑定:
<input data-bind="value: name, valueUpdate: 'blur'" class='tags' />
当元素失去焦点时会发生模糊事件。每当它发生时--KO将强制绑定更新值。
<强> valueUpdate 强>
如果你的绑定还包含一个名为valueUpdate的参数,那么这个 定义KO应该用来检测更改的其他浏览器事件 除了改变事件。
答案 1 :(得分:0)
我看着你的小提琴,在调用self.gifts()
时你似乎错过了几个括号。
这一个:
self.save = function () {
var abc = $.parseJSON(ko.toJSON({ gifts: self.gifts }));
alert(abc.gifts[0].name);
};
应该是:
var abc = $.parseJSON(ko.toJSON({ gifts: self.gifts() }));
括号末尾。
您必须记住self.gifts = ko.observableArray(gifts);
返回函数中包含的值,因此为了访问该值,您需要调用self.gifts()
。
运行此示例将显示一个空字符串的警报,因为您使用空名称值初始化了gifts
数组。
如果您在此处为名称添加值:
var viewModel = new GiftModel([
{ name: "", price: "" }
]);
然后,您将在警告框中显示该名称。请参阅更新的jsfiddle HERE。