2015-05-27 17 views
5

Ich habe eine MVC-Ansicht mit einer Reihe von Tasten auf sie (jedes Element in einem Korb macht 2 Tasten) ...Deaktivieren Sie alle Tasten auf Seite

<button class="pbbg" id="ProductMinus_161637" type="button">-</button> 
<button class="pbbg" id="ProductPlus_161637" type="button">+</button> 

(beide haben ein onclick Ereignis)

Wenn eine dieser Tasten gedrückt wird, möchte ich alle Tasten für jedes Produkt deaktivieren, bis der Korb die Aktualisierung abgeschlossen hat.

Das Click-Ereignis ruft eine JavaScript-Funktion auf, die wiederum einen Ajax-Aufruf ausführt. Im Anschluss an diese post das erste, was ich zu tun versuchen, ist zu deaktivieren, alle Tasten .....

$("input[type=button]").attr("disabled", "disabled"); 

dann nach dem Ajax-Aufruf kehrt wieder aktivieren sie ....

$("input[type=button]").removeAttr("disabled"); 

Ich erhalte keine Fehler, aber die Schaltflächen sind nicht deaktiviert.

Wohin gehe ich falsch?

+0

Versuchen Sie, prop $ ("input [type = button]") zu verwenden. Prop ("disabled", true); – Adil

+5

Deine Elemente sind keine "Eingaben" (sie sind Buttons!) - ändere dein HTML in '' (und benutze '.prop ('disabled', true)') –

+0

@ StephenMücke Doh! Danke, dass ich das nicht bemerkt habe. Nahm die HTML direkt vom Designer. – Fred

Antwort

13

Ihr Selektor ist falsch. anstelle von input.. Selektor sollten Sie :button Pseudo-Selektor verwenden.

Sie können :button Selektor verwenden, um alle Schaltflächen auszuwählen.

$(':button').prop('disabled', true); // Disable all the buttons 

Um alle Tasten zu aktivieren:

$(':button').prop('disabled', false); // Enable all the button 

EDIT

Wenn Sie nur die Tasten, deren ID beginnt mit Product Verwendung deaktivieren möchten:

$('button[id^="Product"]') 
+0

Was nützt es, den Pseudo-Selector ': button' gegenüber' "button" 'zu verwenden und' prop' über 'attr' zu verwenden? – jered

+3

': button' wählt alle 'button',' input [type = "button"] 'und' input [type = "submit"] ' – Tushar

+2

@JCD http://stackoverflow.com/a/16051519/2025923 'prop vs. attr' – Tushar

1

Sie müssen button Selektor verwenden. Versuchen Sie prop wie folgt

$('button').prop('disabled', true); 
3

Wahrscheinlich weil Sie nicht dieverwenden-Tag, verwenden Sie das gerade button-Tag. Versuchen Sie stattdessen $("button").attr("disabled", "disable").

Verwandte Themen