2010-02-06 7 views
5

z jQuery, próbuję wyłączyć pole wprowadzania takiego:W jaki sposób można wyłączyć typ wejściowy = "obraz" za pomocą jquery?

<input id="submit" type="image" src="submit.jpg"> 

Co chciałbym zrobić, to wyłączyć przycisk i zmienić obraz z innego obrazu (submitGreyed.jpg) wizualnie zawiadomić ten przycisk jest wyłączony.

z następującą linię wyłączyć przycisk:

JQuery("#submit").attr('disabled','true'); 

potem zmienić obraz z:

JQuery("#submit").attr('src','submitGreyed.jpg'); 

i raz wyłączone mogę przesłać formularz z:

JQuery("#form").submit(); 

Druga linia ma dziwne zachowanie; czasem działa, a czasami nie.

Po uruchomieniu przycisk jest wyłączony, obraz zmieniony, a formularz jest przesyłany; kiedy to nie działa, przycisk jest wyłączony, formularz jest przesyłany, ale obraz nie jest zmieniany.

Jak mogę to rozwiązać?

+1

W jaki sposób ma to czasami nie działa? Czy masz na myśli, że w niektórych przeglądarkach się psuje? – Matchu

+0

tak, to nie działa w firefox 3.5.7 i safari też. Po wyświetleniu obrazu po raz pierwszy, zacznie działać. Po zamknięciu i ponownym otwarciu przeglądarki nie działa. – systempuntoout

+1

Twoje oferty są niezbilansowane między podwójnymi i pojedynczymi cudzysłowami. #form nie ma końca oferty całkowicie – user113716

Odpowiedz

9

nie dokładnie odpowiedzieć na to pytanie, ale mam nadzieję, że to pomaga:

pierwsze, powinna ona być disabled="disabled" więc to wykorzystać:

jQuery("#submit").attr('disabled','disabled'); 

I nie jestem pewien, co się wyszarzone przycisk wygląda na to, ale można spróbować tylko przy użyciu krycie:

jQuery("#submit").attr('disabled','disabled').css('opacity',0.5); 

Aktualizacja nie mogę odtworzyć problem, więc tutaj to moja sugestia:

bezwzględną ścieżkę do obrazu zamiast względnym i ustaw atrybuty zarówno w tym samym czasie (Choć ustawienie jedna po drugiej nie zmienił mój test):

jQuery("#submit").attr({ 
    disabled: 'disabled', 
    src:  '/images/submitGreyed.jpg' 
}); 

Ponieważ w moim teście użyłem pełnej ścieżki, która może mieć na nią nieco wpływu.

View a demo here

+1

'Wyłącz: true' działa również poprzez jQuerry. Nie jestem pewien, czy jest to przeglądarka lub jQuery, która je akceptuje. Prawdopodobnie przeglądarka widzi atrybut z dowolną wartością. – alex

Powiązane problemy