1

私は自分の質問に関する多くのブログの回答を調べ、このサイトからいくつかの解決策を見つけ、それらすべてを試しました. でも、なんでだか分からない?これらの解決策は私の問題を解決しません。常にエラーが発生します。最後に、多くの場所でこの解決策が受け入れられているため、それが正しいと認識している解決策を見つけました。しかし、これで私の問題を再び解決することはできません。

$("#<%=plusBttn.ClientID%>")

この解決策を試したときに、このエラーが発生しました: plusBttn は現在のコンテキストに存在しません。

ボタンとテキストボックスのクライアントモードに予測可能モードを使用しています。簡単に言えば、テキストボックス(QuantityTxtbx)に表示されている数量を変更したいのですが、ボタンを制御してください(quantityTxtbx値の値を減らすにはminusBttn、値を増やすにはplusBttnを同様に使用します)

実際、私の問題は、jscript で ClientID を使用してコントロールを見つけることです。

上記のコードはすべて Repeater,ItemTemplate にあります。

asp.netページの私のjscriptコード:

$(document).ready(function () {

   $("#<%=plusBttn.ClientID%>").click(function () {
      var value = parseInt($("input[id$='QuantityTxtbx']").val());
      value = value + 1;
      $("input[id$='QuantityTxtbx']").val(value);
      });

     $("input[id$='#minusBttn_']").click(function () {
                var value = parseInt($("input[id$='QuantityTxtbx']").val());
                                    if (value > 1)
                                        value = value - 1;
                                    $("input[id$='QuantityTxtbx']").val(value);
                                });
                            });

そして私のコントロール;

    <asp:Button ID="minusBttn" runat="server" Text="-"  ClientIDMode="Predictable"/> 
    <asp:TextBox ID="QuantityTxtbx" runat="server" Text='<%#Eval("Quantity") %>' Enabled="False" EnableTheming="False" EnableViewState="False" Height="16px" Width="16px" Wrap="False"ClientIDMode="Predictable">1</asp:TextBox>
    <asp:Button ID="plusBttn" runat="server" Text="+" ClientIDMode="Predictable" />

誤解して申し訳ありません。ブラウザ側のコードは次のとおりです。

<script type="text/jscript">

                        $(document).ready(function () {
                            var plusBttn = $("input[id$='minusBttn']");
                            $("input[id$='#minusBttn_']").click(function () {
                                var value = parseInt($("input[id$='QuantityTxtbx']").val());
                                value = value + 1;
                                $("input[id$='QuantityTxtbx']").val(value);

                            });
                            $("input[id$='#minusBttn_']").click(function () {
                                var value = parseInt($("input[id$='QuantityTxtbx']").val());
                                if (value > 1)
                                    value = value - 1;
                                $("input[id$='QuantityTxtbx']").val(value);
                            });
                        });

                    </script>

                    <input type="submit" name="ctl00$ContentPlaceHolder1$Repeater1$ctl01$minusBttn" value="-" id="ctl00_ContentPlaceHolder1_Repeater1_ctl01_minusBttn_0" /> 


                    <input name="ctl00$ContentPlaceHolder1$Repeater1$ctl01$QuantityTxtbx" type="text" value="2" id="ctl00_ContentPlaceHolder1_Repeater1_ctl01_QuantityTxtbx_0" disabled="disabled" style="height:16px;width:16px;" />
                    <input type="submit" name="ctl00$ContentPlaceHolder1$Repeater1$ctl01$plusBttn" value="+" id="ctl00_ContentPlaceHolder1_Repeater1_ctl01_plusBttn_0" />
4

1 に答える 1

0

次のコードを使用してみてください。

$("#<%#Container.FindControl("plusBttn").ClientID%>")

コンテンツに基づいたマスター ページの変更 ID は既にわかっておりContentPlaceHolder、リピーターを使用して、データベース接続の新しい ID を繰り返します。jquery.FindControlは、データバインドされた plusBttn ClientID で適切に機能します。

次に、jquery スクリプトを次のように更新します。

$(document).ready(function () {
var plusBttn = $("#<%#Container.FindControl("plusBttn").ClientID%>");
 $("#<%#Container.FindControl("minusBttn").ClientID%>").click(function () {
     $("#<%#Container.FindControl("QuantityTxtbx").ClientID%>").val();
  });
 $("#<%#Container.FindControl("minusBttn").ClientID%>").click(function () {
     $("#<%#Container.FindControl("QuantityTxtbx").ClientID%>").val();
  });
});
于 2013-08-26T10:15:32.237 に答える