【问题标题】:How to Code a Radio button in a single page Application如何在单页应用程序中编写单选按钮
【发布时间】:2014-04-15 00:59:15
【问题描述】:

我有一个以 Hot Towel 为模型的单页应用程序。在视图中,有一个单选按钮(该单选按钮可以有多个实例)。问题是当这个单选按钮有多行时,用户只能在多行单选按钮中选择一个选项。我不知道如何以这样的方式获得它,每一行都包含其唯一的单选按钮实例。我知道下面的代码是错误的,但它说明了我正在尝试做的事情 - HTML-

                     <table style="width: 100%">
                    <tbody data-bind="foreach: LoanDetails()">
                        <tr style="border: none">
                            <td style="font-weight: bold">Doc/Stand By:</td>
                             <td colspan="3">
                                    <input type="radio" name="DocStandby" value="Documentary" data-bind="checked: DocStandby" /> Documentary
                                    <input type="radio" name="DocStandby" value="Stand By" data-bind="checked: DocStandby" /> Stand By

                            </td>
                        </tr>

数据服务

 define(['services/logger', 'durandal/system', 'plugins/router'],
function (logger, system, router) {
    var LCApplicationModel = function (SeedID, clientID, DocStandby) {
        var self = this;

        self.SeedID = SeedID;
        self.clientID = clientID;
        self.DocStandby = DocStandby;

    };

    var LCApplication = function (LCObservable, clientID, SeedID) {

        var clients = new LCApplicationModel(SeedID(), clientID(), '');

        LCObservable.push(clients);

        return LCObservable;
    };

         var dataservice = {
        LCApplication: LCApplication
    };
    return dataservice;

});

在我的视图模型中,我调用数据服务来填充 LoanDetails()-

 return LCDataService.LCApplication(LoanDetails, ClientID, nextnum);

我怎样才能做到这一点?

【问题讨论】:

    标签: knockout.js durandal single-page-application knockout-2.0


    【解决方案1】:

    单选按钮使用 name 属性进行分组。当为两个不同的控件提供相同的名称时,浏览器期望按照约定将它们分组,并且一次只能检查一个。这就是单选按钮和复选框的区别。

    如果您想允许选择多个收音机,请更改名称。

    <input type="radio" name="DocStandby1" value="Documentary" data-bind="checked: DocStandby" /> Documentary
    <input type="radio" name="DocStandby2" value="Stand By" data-bind="checked: DocStandby" /> Stand By
    

    Example

    Updated Example

    【讨论】:

    • 我想要同名但有多个实例的单选按钮。在每种情况下,用户都应该能够选择一个或另一个收音机。因此,如果有 7 个详细信息行,则将有 7 组具有相同名称的单选按钮。我的问题是,每次用户单击一个时,其他 6 个单选按钮实例都会进行相同的更改。
    • 我知道这是因为包含单选按钮的每个详细信息行都具有相同的名称。只是不确定如何使每一行彼此独立,以便用户可以在每一行上选择纪录片或待机。
    • 然后动态设置名称和值即可。我添加了一个“更新示例”
    猜你喜欢
    • 1970-01-01
    • 2014-03-28
    • 2018-11-04
    • 1970-01-01
    • 2021-11-13
    • 2013-09-22
    • 2021-12-19
    • 1970-01-01
    • 2019-09-23
    相关资源
    最近更新 更多