Impostare esplicitamente disabilitato = “falso” nell’HTML non funziona

Vorrei impostare esplicitamente un pulsante come abilitato nel file html . Il motivo è che il mio codice in seguito triggers o distriggers il pulsante e se il codice si arresta in modo anomalo, potrei vedere il pulsante disabilitato.

Posso disabilitare il pulsante con

$("#btn").attr("disabled","true") 

ma poi un html contenente:

  

mostra ancora il pulsante come disabilitato. L’ispettore mostra:

  

So che posso farlo

     $("#btn").removeAttr("disabled") 

    o simili, ma non è conveniente farlo per molti elementi nell’html.

    HTML non usa valori booleani per gli attributi booleani, sorprendentemente.

    In HTML, gli attributi booleani vengono specificati aggiungendo semplicemente il nome dell’attributo o (in particolare in XHTML) utilizzando il nome dell’attributo come valore.

           

    Questo è documentato nella specifica HTML: http://www.w3.org/TR/html5/infrastructure.html#boolean-attribute

    Un certo numero di attributi sono attributi booleani. La presenza di un attributo booleano su un elemento rappresenta il valore vero e l’assenza dell’attributo rappresenta il valore falso.

    I valori “true” e “false” non sono consentiti sugli attributi booleani. Per rappresentare un valore falso, l’attributo deve essere omesso del tutto.

    Se si utilizza AngularJS , provare invece ng-disabled . In questo caso puoi usare cose come:

     ng-disabled="true" ng-disabled="false" ng-disabled={{expression}} 

    e funziona come previsto ….

    So che questo è un vecchio argomento, ma poiché non c’è una risposta marcata, questo aiuto? Questo risponde alla domanda esplicitamente contrassegnata come abilitata.

        

    Anch’io sto indagando su questo per abilitare un pulsante quando si verifica la convalida. Spero che questo aiuti qualcuno.

    In futuro, può aiutare qualcuno.

      selectLanguage.onchange = function() { var value = selectLanguage.value; if (value != '') { submitLanguage.removeAttribute('disabled'); } else { submitLanguage.setAttribute('disabled', 'disabled'); } // submitLanguage.setAttribute('enabled', 'enabled'); }