在 Knockout.js 中单击按钮时检查 select 控件是否具有值
Check if select control has value when button is clicked in Knockout.js
我想知道当在 foreach 循环中单击按钮时,我是否能以某种方式检测 select 控件是否具有值。
这是我的标记:
<tbody data-bind="foreach: Pack">
<tr>
<th class="name"><span data-bind="text: Name"></span></th>
</tr>
<tr>
<td class="bg" colspan="3" align="left" height="112px" valign="middle">
<div class="row">
<div>
<select class="form-control" data-bind="options: $root.TeacherOptions(), optionsValue: 'TeacherId', optionsText: 'TeacherName', optionsCaption: 'Choose Teacher'"></select>
</div>
<div class="col-lg-6 col-md-6 col-sm-6 n-p m-t-30">
<!-- ko if: !Processing() -->
<a href="javascript:void();" data-bind="click: $root.AddToCart" class="additem-link">Add To Order</a>
<!-- /ko -->
</div>
</div>
</td>
</tr>
</tbody>
这是添加到购物车的功能:
t.AddToCart = function (n) {
if (!t.Busy()) {
t.Busy(!0);
n.Processing(!0);
$.ajax({
type: "POST",
url: "/webservices/ShopWS.asmx/AddToCart",
data: "{'packId': " + n.Id + "}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (i) {
if (i.d) {
n.Processing(!13);
t.Busy(!13);
}
},
error: function (n) {
u(n);
}
});
}
};
我想检查 select 控件在 foreach 循环中是否具有该项目的实际值,如果有,则可以将其添加到购物车,否则无法添加。
我该怎么做?
要获取所选项目的值,您可以在 select
元素上使用 value
绑定。
<select class="form-control" data-bind="value: selectedItem, options: $root.TeacherOptions(), optionsValue: 'TeacherId', optionsText: 'TeacherName', optionsCaption: 'Choose Teacher'"></select>
在您的视图模型中,您将使用
this.selectedItem = ko.observable(); // You can optionally set it to a specific TeacherId
完成后,this.selectedItem()
将 return 当前所选项目的任何值。
我想知道当在 foreach 循环中单击按钮时,我是否能以某种方式检测 select 控件是否具有值。
这是我的标记:
<tbody data-bind="foreach: Pack">
<tr>
<th class="name"><span data-bind="text: Name"></span></th>
</tr>
<tr>
<td class="bg" colspan="3" align="left" height="112px" valign="middle">
<div class="row">
<div>
<select class="form-control" data-bind="options: $root.TeacherOptions(), optionsValue: 'TeacherId', optionsText: 'TeacherName', optionsCaption: 'Choose Teacher'"></select>
</div>
<div class="col-lg-6 col-md-6 col-sm-6 n-p m-t-30">
<!-- ko if: !Processing() -->
<a href="javascript:void();" data-bind="click: $root.AddToCart" class="additem-link">Add To Order</a>
<!-- /ko -->
</div>
</div>
</td>
</tr>
</tbody>
这是添加到购物车的功能:
t.AddToCart = function (n) {
if (!t.Busy()) {
t.Busy(!0);
n.Processing(!0);
$.ajax({
type: "POST",
url: "/webservices/ShopWS.asmx/AddToCart",
data: "{'packId': " + n.Id + "}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (i) {
if (i.d) {
n.Processing(!13);
t.Busy(!13);
}
},
error: function (n) {
u(n);
}
});
}
};
我想检查 select 控件在 foreach 循环中是否具有该项目的实际值,如果有,则可以将其添加到购物车,否则无法添加。
我该怎么做?
要获取所选项目的值,您可以在 select
元素上使用 value
绑定。
<select class="form-control" data-bind="value: selectedItem, options: $root.TeacherOptions(), optionsValue: 'TeacherId', optionsText: 'TeacherName', optionsCaption: 'Choose Teacher'"></select>
在您的视图模型中,您将使用
this.selectedItem = ko.observable(); // You can optionally set it to a specific TeacherId
完成后,this.selectedItem()
将 return 当前所选项目的任何值。