检查在Knockout.js中单击按钮时选择控件是否有值

i7uq4tfw  于 2022-11-10  发布在  其他
关注(0)|答案(1)|浏览(103)

我想知道,当在foreach循环中单击按钮时,我是否可以检测到选择控件是否有值。
这是我的标记:

<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);
                           }
                       });
                   }
               };

我想检查选择控件是否有foreach循环中该项目的实际值,如果有,则可以添加到购物车中,否则将无法添加。
我怎么能那样做呢?

djmepvbi

djmepvbi1#

要获取选定项的值,可以在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()将返回当前选定项具有的任何值。

相关问题