0

jspページにマルチボックスがあります。3つ以上のトランザクションが選択された場合、残りのチェックボックス(マルチボックスからレンダリングされたもの)が無効になるjquery関数を作成したかったのです。チェックボックス(入力タイプチェックボックス)でテストしましたが、マルチボックスでは機能しません

<html:multibox property="selectedTxns" styleClass="txnList" >
                                            <bean:write name="Id" property="businessTypeVOId"/>
                                        </html:multibox>

jquery 関数 -->

<script>
function countChecked() {
var n = $(".txnList:checked").length;

          if (n<3) {     $(".txnList:checkbox").removeAttr("disabled"); 
                                                    $("#msg").text(""); 
                                       }
                                     else {     $(".txnList:checkbox:not(:checked)").attr("disabled", true);
                                                $("#msg").text("can not choose more than 3 transactions");
                                     }
                                  }

                                  $(".txnList:checkbox").click(countChecked);
                                </script>
4

1 に答える 1

1

あなたのロジック ( jsFiddle ) をテストしましたが、動作しています。

マルチボックスがどのようにレンダリングされるかはわかりませんが.txnList、コンテナーはチェックボックスを保持していますか?

その場合は、次のようにコンテナーとチェックボックス セレクターの間にスペースを入れる必要があります。

.txnList :checkbox.txnList :checked

これにより、コンテナが選択され、チェックボックスが選択されます。

それが役立つことを願っています。

于 2012-10-26T05:16:17.727 に答える