2010-09-24 3 views
5

как отключить/включить определенную кнопку jquery (по имени)?как отключить/включить кнопку jquery

Кнопка не имеет ID, только этот код:

<button onclick="$('ChangeAction').value='SaveAndDoOrder';" value="Bye" name="SaveAndDoOrder" type="submit"> 
     <i class="Icon ContinueIconTiny"></i> 
     <span class="SelectedItem">Bye</span> 
     </button> 
+2

Вы должны попробовать поиск, прежде чем создавать новое сообщение, в течение последних нескольких дней один и тот же вопрос был задан несколько раз. – RobertPitt

ответ

5

Я бы рекомендовал использовать ID вместо имени, например:

$("#myButton").attr("disabled", true); 

Это добавит disabled attribute к кнопке которой ваш браузер автоматически отключится. Если вы хотите использовать имя, которое вы можете использовать его как это:

$("button[name=myButton]").attr("disabled", true); 
+0

Вопрос задан для способа отключения/включения кнопки по имени, а не по идентификатору. –

+0

этот код не работает, см. Мой обновленный html-код выше! – Tom

+0

Ах! Спасибо за комментарий, обновлено. –

4

Попробуйте это:

$("button[name=SaveAndDoOrder]").attr("disabled", "disabled"); 

Это отключит кнопку с name атрибута равным nameOfButton.

$("button[name=SaveAndDoOrder]").removeAttr("disabled"); 

Это приведет к удалению атрибута отключения с той же кнопки.

+0

спасибо, но этот код не работает, см. Мой обновленный html-код выше! – Tom

+1

Попробуйте мой пересмотренный ответ :) –

0

Как минимум один ответ уже дан, который должен работать.

Я бы сказал, что вам было бы желательно всегда иметь идентификатор на ваших элементах, а не просто полагаться на атрибут имени. Атрибут name действительно предназначен только для маркеров для размещения элементов формы.

CSS и Javascript DOM оптимизированы для просмотра идентификаторов. Вы можете сделать это по имени, как в ответах, которые вам уже были предоставлены, но они намного менее эффективны - даже если вы можете сделать это с одинаковым количеством кода, браузеру придется больше работать за кулисами.

Также некоторые методы доступа к элементам по имени недоступны во всех браузерах (более старые версии IE, в частности, имеют проблемы с [атрибутными] классами в CSS).

0

Это код, я использую, чтобы отключить или повторно включить контроль:

function handleControlDisplay(className, foundCount, checked) { 



    var button = jQuery(className); 



    if (foundCount > 0 && foundCount == checked) { 

     // enable 

     button.removeAttr("disabled"); 

    } 

    else { 

     // set the disabled attribute 

     button.attr("disabled", "true"); 

    }; 

} 
0

Создать и использовать плагин JQuery:

; (function($) { 
    $.fn.enable = function(b) { 
     return this.each(function() { 
      this.disabled = !b; 
     }); 
    }; 
})(jQuery); 

использовать его как это

$(selector).enable(true|false); 
0

Предполагая, что кнопка:

<asp:Button runat="server" ID="btn1" Text="button!"/> 

то отключение будет сделано так:

$(document).ready (function() { 
    var a = $('#btn1'); 
    a.attr("disabled", function() { 
     return "disabled"; 
    });  
}); 

отлично работает

0

Я использую jQuery's prop():

$('#generate').click(function() { 
    $(this).prop('disabled', true); 
} 

Чтобы снова включить кнопку, сделайте следующее:

$(this).prop('disabled', false); 

где-то в y наш код.

Смежные вопросы