2012-06-14 15 views
5

Próbuję pobrać jQuery, aby wyłączyć przycisk potwierdzenia w moim formularzu, jeśli lista rozwijana ma określoną wartość, ale nie działa.Jquery, aby wyłączyć przycisk HTML nie działa

Przeczytałem wiele postów tutaj i próbowałem różnych sposobów.

Oto mój kod w tej chwili:

<script> 
     $(document).ready(function() { 
     // Handler for .ready() called. 
     $('#MoveToCompanyId').attr("disabled", true); 

     $('#DeleteAll').live("click", function() { 

      if ($(this).attr("value") == "True") { 
       $('#MoveToCompanyId').attr("disabled", true); 
      } else { 
       $('#MoveToCompanyId').attr("disabled", false); 
       $('#confirm').attr("disabled", true); 
       $('#MoveToCompanyId').change(function() { 
        if ($("#MoveToCompanyId option:selected").text() != "---Select Company---") { 
        $('#confirm').removeAttr("disabled"); 
        alert($("#MoveToCompanyId option:selected").text()); 
       } 
       else { 
        $('#confirm').attr("disabled", true); 
        alert("I should be disabled!"); 
       } 

      }); 
     } 
     }); 
    }); 

    </script> 

Czy ktoś widział żadnych problemów z nim?

Po to, by wyjaśnić, wiem, że dostaje się do właściwych bloków kodu, ponieważ moje powiadomienia działają. To tylko wyłączenie przycisku, które nie działa.

poważaniem

Gareth

+0

Wypróbuj '.prop' zamiast' .attr'. –

+0

Niestety to też nie działa. Patrzę na przycisk w Firebug i nigdy nie wydaje się, aby dodać wyłączony atrybut w ogóle. –

+0

czy możesz skrzypić swój kod? –

Odpowiedz

10

należy używać

prop('disabled',true) 
prop('disabled',false) 

jeśli używasz jQuery 1.6 + powinieneś b e używając rekwizytów.

Czytaj więcej o prop

Właściwości generalnie wpływa na dynamiczny stan elementu DOM bez zmiany zserializowaną atrybut HTML. Przykłady obejmują właściwość wartości elementów wejściowych, wyłączoną właściwość wejść i przycisków lub zaznaczoną właściwość pola wyboru. Do ustawienia wyłączonego i sprawdzonego należy użyć metody .prop() zamiast metody .attr(). Do pobierania i ustawiania wartości należy użyć metody .val().

+0

dzięki za porady druty, niestety to też nie działa. –

+0

Obecnie to działa. Wielkie dzięki za pomoc –

+0

Cieszę się, że pomogłem :) –

3

należy używać

.attr('disabled', 'disabled') 

wyłączyć kontrolę i

.removeAttr('disabled') 

aby ją włączyć.

http://www.w3schools.com/tags/att_input_disabled.asp

+0

Dzięki Dave, to jedna z rzeczy, których już próbowałem bezskutecznie! –

+0

ale attr ("disabled", true) pracował dla mnie! –

+0

@BehnamEsmaili określenie arbitralnej wartości dla "wyłączone" spowoduje wyłączenie kontroli, ale jedynym sposobem, aby ponownie włączyć to jest usunięcie "wyłączonego" atrybutu łącznie – Dave

0

Spróbuj

attr('disabled', 'disabled') 

zamiast

attr("disabled", true); 
+0

attr ("disabled", true); nie działa na przykład: – MJK