Совместное использование Repeater и jQuery

Я изучаю множество ответов на свой вопрос в блогах, также я нашел какое-то решение с этого сайта и попробовал их все. Но я не знаю, почему? Эти решения не решают мою проблему. Я всегда получаю ошибки. Наконец, я нашел решение, которое, как я понимаю, является верным, потому что во многих местах это решение принято. Но это не может снова решить мою проблему.

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

Я получаю эту ошибку, когда пробовал это решение: plusBttn не существует в текущем контексте.

Я использую предсказуемый режим для клиентского режима для своих кнопок и текстового поля. Просто я хочу изменить количество, которое отображается в текстовом поле (QuantityTxtbx), с помощью моих кнопок (minusBttn для уменьшения значения количестваTxtbx и plusBttn аналогичным образом используется для увеличения значения)

На самом деле моя проблема заключается в том, чтобы найти мои элементы управления с помощью ClientID в jscript.

Все коды, показанные выше, находятся в Repeater, ItemTemplate:

Мой код jscript на странице asp.net:

$(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" />

person user2304054    schedule 21.04.2013    source источник
comment
как выглядит вывод HTML и скрипта в исходном коде браузера?   -  person charlietfl    schedule 21.04.2013
comment
Они есть в репитере и в таблице. Эти кнопки и текстовое поле, о которых я говорил в том же тд.   -  person user2304054    schedule 21.04.2013
comment
jscript, который я использовал для управления ими. (Чтобы изменить значение текстового поля)   -  person user2304054    schedule 21.04.2013
comment
Идея заключалась в том, чтобы вы предоставили живой html ... описание его словами не помогает. Браузер не работает с вашим asp-кодом ... он работает с выходным html и скриптом   -  person charlietfl    schedule 21.04.2013
comment
Я пытаюсь, но не могу опубликовать изображение: система S не позволяет мне   -  person user2304054    schedule 21.04.2013
comment
Разве мой вопрос не достаточно ясен? Тогда вы можете задать больше вопросов. Мне нужна помощь!   -  person user2304054    schedule 21.04.2013
comment
изображение? Вам необходимо разместить код. Это не 20 вопросов ... предоставьте HTML и скрипт, который видит браузер, а не версию на стороне сервера ... это несложно   -  person charlietfl    schedule 21.04.2013
comment
хорошо, я обновил свой вопрос, вы можете увидеть код.   -  person user2304054    schedule 21.04.2013


Ответы (1)


попробуйте использовать следующий код:

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

Мы уже знаем идентификаторы изменений главной страницы на основе содержимого ContentPlaceHolder, и с помощью повторителя он выполняет итерацию новых идентификаторов для всего, что связано с вашим подключением к базе данных. 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();
  });
});
person Oddacon    schedule 26.08.2013