-3

2日前、「ラジオボタンチェックバインディングhtml5、デュランダル」という質問をしました。よく見える答えを受け入れましたが、うまくいきません。

コメントを追加して、それが機能しないことを伝えたかっただけです。しかし、コメントを追加するには、50回の担当者が必要です...

あなたが本当に私を助けたいと思っていて、あなたのプロジェクトでは機能するが私のプロジェクトでは機能しないことについて私に答えたくない場合は、最初に私の以前の質問を読む必要があります。動作しません。

だから私は新しい質問を書くしかありませんでした...怒らないでください。

私は私のプロジェクトについてもっと話します、それはあなたが私を助けるのを助けるかもしれません... 私はDURANDALプロジェクトで働いています。「searchBy」というラジオボタンが 2 つあります。最初のボタン ID は「byId」です。2 番目のボタン 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>

2 番目のボタン "databind="checked:!value()"" に書き込もうとしたり、最初のボタン "()" の "value" という単語の後に Else を書き込もうとしましたが、何も役に立ちません。

手伝って頂けますか?

4

1 に答える 1

0

答えを知りたい場合は、私の友人が私を助けてくれました-ここにあります:

「値」と呼ばれるラジオボタンのプロパティに追加する必要があります。これで、「checked」プロパティを背後のプロパティにバインドできました。背後のプロパティはobservable.initializeで、ラジオボタンのプロパティ「値」で指定した文字列の1つになります。それは特別なノックアウト機能です。チェックを変更すると、背後のプロパティは、現在チェックされている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 に答える