2012-03-10 1 views
7

Come abilitare/disabilitare correttamente il campo di input al clic con jQuery?Come disabilitare/abilitare il campo di input al clic con jQuery

stavo sperimentando con:

$("#FullName").removeAttr('disabled'); 

che rimuove disabled="disabled" da questo campo di input:

<input id="FullName" style="width: 299px" value="Marko" disabled="disabled" /> 

Ma come aggiungere di nuovo con clic su un altro pulsante o come disabilitare campo di immissione al clic ?

+0

http://stackoverflow.com/questions/1414365/how-to-disable-an-input-with- jquery check here – jeremysawesome

risposta

18

Per la versione di jQuery 1.6 + utilizzare prop:

$('#elementId').click(function(){ 
     $('#FullName').prop('disabled', true\false); 
}); 

Per le versioni precedenti di jQuery utilizzano attr:

$('#elementId').click(function(){ 
     $('#FullName').attr('disabled', 'disabled'\''); 
}); 
5
$("#FullName").prop('disabled', true); 

Fare.

Ma tieni presente dopo averlo disabilitato (dal codice precedente) il gestore onclick non funziona come disabilitato. Per abilitarlo di nuovo aggiungere $("#FullName").removeAttr('disabled'); nel gestore onclick di un altro pulsante o campo.

+0

Funziona, molte grazie! – Drazek

+0

Grazie per aver reso chiara la seconda parte. Non riuscivo a capire perché l'evento click non si attivasse quando l'input di testo era disabilitato. – decapo

1

Questo dovrebbe farlo.

$("#FullName").attr('disabled', 'disabled'); 

Shiplu è corretto, ma utilizzare questo se si è non si utilizza jQuery 1.6 +

1
$("#anOtherButton").click(function(){ 
    $("#FullName").attr('disabled', 'disabled'); 
}); 

+0

Hai dimenticato il '#' nel primo selettore '$ (" anOherButton ") ...' e ha errore di battitura. – gdoron

+0

@gdoron: grazie, modificato – sll

4
$('#checkbox-id').click(function() 
{ 
    //If checkbox is checked then disable or enable input 
    if ($(this).is(':checked')) 
    { 
     $("#to-enable-input").removeAttr("disabled"); 
     $("#to-disable-input").attr("disabled","disabled"); 
    } 
    //If checkbox is unchecked then disable or enable input 
    else 
    { 
     $("#to-enable-input").removeAttr("disabled"); 
     $("#to-disable-input").attr("disabled","disabled"); 
    } 
}); 
2

altro metodo semplice per abilitare/disabilitare feild ingresso

$("#anOtherButton").click(function() { 
 
    $("#FullName").attr('disabled', !$("#FullName").attr('disabled')); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
 

 
<input id="FullName" style="width: 299px" value="Marko" disabled="disabled" /> 
 
<br> 
 
<br> 
 
<input type="button" id="anOtherButton" value="disable/enable" />

0

Per passare un campo tra il disabile e abilitato, provate questo:

$('#toggle_button').click(function() { 
    $('#FullName').prop("disabled", 

    function (i, val) { 
     return !val; 
    }); 
})