-3

两天前我问了问题“单选按钮检查绑定html5,durandal”。我接受了一个看起来不错的答案,但它不起作用。

我只想添加一条评论并告诉它不起作用;但要添加评论,我需要 50 次重复...

如果您想真正帮助我并且不想回答对您的项目有效但对我的项目无效的问题,您必须先阅读我以前的问题,这样您就会知道我已经尝试过的所有选项都没有不行。

所以我别无选择,只能写新问题……请不要生气。

我会详细介绍我的项目,也许它会帮助你帮助我......我在 DURANDAL 项目中工作。我有两个单选按钮,称为“searchBy”。第一个按钮 id 是:“byId”。第二个按钮 id 是:“byName”。用户必须选择其中之一,我必须知道他选择了什么。

我尝试了注释中附加的文档中编写的代码,它不起作用。

下面的代码:

html代码:

                        <tr>
                            <td>
                                <label for="byId" innerHTML:"search by id" />
                                <input type="radio"
                                    name="radSearchBy"
                                    id="byId"
                                    value="RadioById"
                                    data-bind="checked:computedIsId" />
                            </td>

                        </tr>
                        <tr>
                            <td>
                                <label for="byName" innerHTML:"search by name" />
                                <input type="radio"
                                    name="radSearchBy"
                                    value="RadioByName"
                                    id="byName"
                                   data-bind="checked:computedIsId"
                                   />
                        </td>

                        </tr>

后面的javascript:

                 computedIsId:ko.observable("searchById"),

这没用!!!


我尝试了第一个答案中编写的代码,它也没有......

后面的javascript:

                radSearchBy = ko.observable(true);
             value = ko.computed({
               read: function() { return radSearchBy.toString(); },
                    write: function(val) { radSearchBy(val === 'true'); }
                });

html代码:

                        <tr>
                            <td>
                                <label for="byId" innerHTML:"search by id" />
                                <input type="radio"
                                    name="radSearchBy"
                                    id="byId"                                        
                                    data-bind="value" />
                            </td>

                        </tr>
                        <tr>
                            <td>
                                <label for="byName" innerHTML:"search by name" />
                                <input type="radio"
                                    name="radSearchBy"
                                    data-bind="value" 
                                    id="byName"

                                   />
                        </td>

                        </tr>

我还尝试在第二个按钮“databind="checked:!value()"”中写入,或者在第一个按钮“()”中写入“value”一词后的 else……没有任何帮助。

你能帮助我吗?

4

1 回答 1

0

如果您想了解答案,我的朋友帮助了我-这里是:

您必须添加名为“值”的单选按钮属性。现在,您已将属性“checked”绑定到后面的 e 属性。后面的属性将是可观察的。将其初始化为您在单选按钮的属性“值”处提供的字符串之一。这是特殊的淘汰功能。当您更改检查时,后面的属性将接受当前检查的 readio 的“值”属性的字符串。

这是一个简单的例子:

         <                    input type="radio"
                                    name="radSearchBy"                                      
                                    value="byNo"
                                    data-bind="checked: searchBy" />
                                <label for="byNo" data-bind="text: global.dict()[376]" />

                                <input type="radio"
                                    name="radSearchBy"                                       
                                    value="byName"
                                    data-bind="checked: searchBy" />

背后的javascript:var vm = {

                                  searchBy: ko.observable("byno"),
                            }
                            return vm;

它比你想象的更简单......

当你想知道收音机是否被选中时,你已经写了“

                       function isByNo(){

                                     return vm.searchBy() == "byNo" ? true : false;
                        }

当您想从您必须编写的代码中检查任何按钮时:

                       vm.searchBy("byNo");
于 2013-10-29T08:24:38.107 回答