отключить/скрыть всю кнопку ссылки с помощью jquery в ретрансляторе

У меня есть повторитель, у которого будет кнопка ссылки на строку, вот код:

<asp:Repeater ID="rpt_OutstandingBCsForClient" runat="server">
   <ItemTemplate>
        <div class="pay">
            <table>
                 <tr>
                     <td>
                      <div style="width: 230px;">
                <asp:Label ID="lbl_Len" runat="server" ></asp:Label>
                 </div>
                   </td>
                  <td align="left">
                  <div style="width: 80px;">
            <asp:LinkButton ID="lnkbtn_Remove" runat="server">Remove</asp:LinkButton>

            </div>
              </td>                            
               </tr>
           </table>
          </div>
        </ItemTemplate>
      </asp:Repeater>

Я хочу отключить или скрыть все кнопки ссылок с идентификатором «lnkbtn_Remove» при нажатии кнопки, поэтому я сделал это, но все равно это не работает, если поставить предупреждение после var linkButton1, я получаю объект, но он не отключается и не скрывает кнопка ссылки:

$("input[id$='btnP']").click(function (e) {
                var linkButton1 = $('[id*="lnkbtn_Remove"]'); 
                $.ajax({
                    type: "POST",
                    url: "MyPage.aspx/Take",
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",

                    success: function (msg) {
                        if (msg.d.indexOf('https://') > -1) {

                            $('#lnkbtn_Remove').attr("disabled", true);
                        }
                        else {

                        }
                    }

                });

            e.preventDefault();
        });

person Zaki    schedule 06.12.2012    source источник


Ответы (4)


Ваш идентификатор будет изменен asp.net для каждой кнопки ссылки. Используйте дикие карты.

Изменять

$('#lnkbtn_Remove').attr("disabled", true);

To

$('[id*=lnkbtn_Remove]').attr("disabled", true);
person Adil    schedule 06.12.2012
comment
Я вижу отключенный атрибут в firebug на кнопке, для которой установлено значение true после нажатия, но я все еще могу нажать кнопку. - person Zaki; 06.12.2012
comment
AFAIK Чтобы отключить привязку, вам нужно удалить атрибут href или использовать preventDefault при его нажатии. - person Adil; 06.12.2012

Поскольку ваши LinkButton являются элементами управления на стороне сервера, их идентификаторы на стороне клиента будут не lnkbtn_Remove, а somethingsomethingsomethinglnkbtn_Remove.

Таким образом, попробуйте $('[id$="lnkbtn_Remove"]') вместо $('#lnkbtn_Remove'). id$= означает "ID заканчивается на".


Помимо проблемы с селектором, вы также, по-видимому, не можете отключить LinkButton, поэтому вам нужно .remove() или .hide() его.

person Rawling    schedule 06.12.2012
comment
попробовал это, но я не вижу атрибута отключения с помощью firefox - person Zaki; 06.12.2012
comment
Проблема также может заключаться в том, что вы не можете отключить кнопку ссылки? Попробуйте буквально .Remove() и посмотрите, исчезнут ли кнопки или нет. - person Rawling; 06.12.2012
comment
круто, теперь это работает с функцией hide() $('[id*=lnkbtn_Remove]').hide('slow'); - person Zaki; 06.12.2012
comment
Отлично, по крайней мере, селектор работает; Однако я думаю, что вы можете отключить только LinkButton, например. очищая его OnClick поведение. - person Rawling; 06.12.2012

OnbuttonClick Если вы хотите отключить эту кнопку, вы можете использовать...

$('[id*=lnkbtn_Remove]').attr("disabled", true);

или если вы хотите скрыть это, просто вы можете использовать

$("#lnkbtn_Remove").hide(); 
person Abhijit Pandya    schedule 06.12.2012

Попробуйте установить класс CSS для ваших кнопок, например «linkButtonRemove», чтобы все кнопки ссылок из вашего повторителя имели один и тот же класс. Я думаю, что это лучший способ, чем использовать идентификаторы здесь...

А потом в jquery попробуй скрыть найденные элементы:

    $('.linkButtonRemove').hide();

или через добавление стиля css

     $('.linkButtonRemove').css('display', 'none');
person Schnapz    schedule 06.12.2012