Knockoutjs for each n 行检查下拉列表是否有值
Knockoutjs foreach n rows check if dropdown has value
我有这个html标记:
<!-- ko foreach: Orders -->
<div class="row">
<div>
<select class="form-control" data-bind="attr: { id: 'prefix_' + $index() }, options: TeacherNames, optionsValue: 'TeacherId', optionsText: 'TeacherName', optionsCaption: 'Choose Teacher', event: { change: $root.teacherChanged }">
</select>
</div>
<div>
<a href='#' data-bind="click: $root.RequestImage" class="green-btn blue pull-right">
<span class="glyphicon glyphicon-cloud-download"></span> Download
</a>
</div>
</div>
<!-- /ko -->
foreach 循环中将有 n 个项目,这些项目在开发时是未知的。
我想做的是当$root。单击RequestImage,代码需要检查在该行的受关注的下拉列表中是否进行了选择,如果进行了选择,则继续,否则将显示带有"错误"消息的警报框。
因此,在应该发生操作的 RequestImage 中,这是当前的 RequestImage 函数:
self.RequestImage = function () {
};
我怎样才能做到这一点?
更新
订单虚拟机:
var self = this;
self.Orders = ko.observableArray([]);
$.ajax({
type: "POST", url: "/webservices/InfoWS.asmx/GetOrders",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
if (data.d != null) {
var orderIds = [];
ko.utils.arrayForEach(data.d, function (item) {
item._teacherOrders = ko.observable();
$.ajax({
type: "POST",
url: "/webservices/InfoWS.asmx/GetTeachersForMyAccount",
contentType: "application/json; charset=utf-8",
data: "{'orderId': " + JSON.stringify(item.OrderId) + "}",
dataType: "json",
success: function (data) {
if (data) {
return item._teacherOrders(data.d);
}
},
error: function (n) {
alert('Error retrieving teachers for orders, please try again.');
}
});
item.TeacherNames = ko.computed(function () {
return item._teacherOrders();
});
self.Orders.push(item);
orderIds.push(item.OrderId);
});
}
},
error: function (data) {
var response = JSON.parse(data.responseText);
console.log("error retrieving orders:" + response.Message);
}
});
我会这样做:
- 向每个订单对象添加可观察
selectedTeacher
-
将
value: selectedTeacher
添加到您的选择中:<select class="form-control" data-bind="attr: { id: 'prefix_' + $index() }, options: TeacherNames, optionsValue: 'TeacherId', ..., value: selectedTeacher"></select>
-
检查
RequestImage
事件中可观察到的内容if ( !data.selectedTeacher() ) { alert('Error: select teacher') } else { alert('Success') }
工作演示 - 小提琴
相关文章:
- 如何根据是否通过jsp中的jstl选中单选按钮来启用和禁用下拉列表
- 如何使用 jquery 检查该值是否存在于带有标签的 select2 下拉列表中:true
- AngularJS通过点击按钮检测下拉列表是否已更改
- 是否可以阻止 选择在Maxitem = 1时转换为下拉列表
- 检查是否未从下拉列表中选择项目
- 使用 Javascript 和/或 Jquery 验证下拉列表值是否彼此不同
- 如何检查是否选择了第一个下拉列表实时
- 是否可以在 Recurly.js v4 中为到期月份和年份的托管字段提供下拉列表而不是文本输入字段
- 检查是否同时选择了两个多选下拉列表
- Knockoutjs for each n 行检查下拉列表是否有值
- 在搜索下拉列表时,是否可以将结果放在顶部
- 如何获取所有不同的下拉列表是否已选择值
- 检测html选择下拉列表是否处于下拉选择状态
- jQuery:如何检查所选的下拉项是否已经在文本框列表中
- 在html表的foreach绑定中,是否有可能将数据绑定到一个带有knockout的select下拉列表?
- 检查下拉列表是否有多个选项
- 如何检查是否从HTML下拉列表中选择了项目
- . net WebApp中的下拉列表-是否可以在列表中的一个或两个项目下划下划线?
- jQuery检测下拉列表是否展开
- Javascript函数来检查下拉列表是否有相同的值