【发布时间】:2017-10-11 22:34:53
【问题描述】:
我正在创建如下输入元素:
<input type="text" class="form-control" data-bind="value: attr: { name: Data[' + $index() + ']'}" />
我有另一个按钮,它通过点击创建多个上面的输入。
我的主按钮也点击为:
<input type="button" value="Check Data" class="btn btn-primary" data-bind='click: verify.bind($data, event)' />
在我的淘汰赛中,我有:
self.verify= function (data, event) {
//here I want the data that is entered in each of the inputs.
}
在上面的按钮上单击我想获取所有输入的值。在 JS 中,我可以按名称完成元素,它会给我那个元素。但是我怎样才能让它在这里工作。
更新代码:
我的 HTML 中有这个:
<div data-bind="foreach: { data: myData }">
<div class="form">
<div class="myClass">
<input type="text" class="form-control" data-bind="value: $data.textbox, attr: { name: 'MyData[' + $index() + '].Textbox'}" />
</div>
<div class="myClass">
<input type="button" value="Add More" class="btn btn-primary" data-bind="click: $parent.add"/>
</div>
</div>
</div>
当用户单击“添加更多”时,它会添加更多内容并添加一个文本框。 然后最后我有一个按钮:
<div class="form">
<input type="button" value="Check Data" class="btn btn-primary" data-bind='click: checkData' />
</div>
当用户单击检查数据按钮时,我只需要对文本框中输入的所有数据进行一些验证。验证需要在客户端完成。
在我的淘汰赛中,我有:
this.add = ko.observableArray();
this.add = function () {
self.myData.push(
{
textbox: ""
});
};
this.checkData = function (){
//Here I want to get whats entered in all the textboxes
}
【问题讨论】:
-
你需要元素名称做什么?你不还是通过 Ajax 提交表单数据吗?
-
是的,我有 2 个按钮。使用上面的按钮,我只是对输入进行一些验证。使用另一个按钮,我正在执行实际提交
-
问题是“你不通过 Ajax 提交表单数据吗?”。
-
是的,我通过 Ajax 提交表单数据。在提交表单时,我可以很好地获取模型中的值。但我想要客户端的这些文本框值。
-
在示例的第一行中,您将
this.add设置为 observableArray,稍后您将 setthis.add设置为函数。让你想想this.add应该是什么。