2012-06-26 16 views
5

Sono in procinto di apprendere jQuery e in un po 'di sottaceti aggiungendo e rimuovendo l'attributo disabilitato da una casella html. Sto volendo in modo che quando si seleziona la casella non è possibile scrivere in un textarea un indirizzo, oppure è necessario selezionare da una casella di ricerca. L'ho fatto dopo, ma la casella di controllo sta causando il mio problema. Questa è la mia chiamata di funzione. Inserisce correttamente la funzione, ma non rimuove gli attributi disabilitati quando è selezionata e genera un errore che non può utilizzare il metodo addAttr per aggiungere il disabile.Rimozione e aggiunta di attributi disabilitati con jQuery da una casella di controllo html

//attach an event for clicking on the informal contact button 
jQuery(document).ready(
    function() { 
     jQuery('.InformalContact').live('click', 
     function (event) { 
      TestIfInformalContactIsChecked(event); 
     }); 
    } 
); 

//check the status of the informalcontact checkbox when a user activates it 
//If checked, user can input data in the contactinfo manually. 
function TestIfInformalContactIsChecked(event) { 
    var thisCheck = jQuery(event.target); 
    if (thisCheck.is(':checked')) { 
     jQuery("#ContactInfo").removeAttr('disabled'); 
    } 
    else { 
     jQuery("#ContactInfo").addAttr('disabled');  
    } 
} 

E questo è il html ...

<div class="TBItemColumn1"> 
    Name: <input id="Name" value="" class="TBFindContact" style="width: 150px;" maxlength="50" type="text" /><br /> 
    <input id="InformalContact" class="InformalContact" maxlength="50" type="checkbox" ClientIDMode="Static" />Informal Contact<br /> 
    <div id="TBContactSearchBox"></div> 
    Notes: 
    <br /> 
    <textarea id="Notes" style="width: 280px; height: 20px;"></textarea> 
    </div> 
    <div class="TBItemColumn2"> 
    <div class="FloatLeft"> 
     Contact Info: 
     <br /> 
     <textarea id="ContactInfo" value="" style="width: 280px; height: 70px;" disabled="disabled"></textarea> 
    </div> 
    </div> 

Cosa rovinare con impostando l'attributo disabilitato sulla casella di controllo?

risposta

8

Per abilitare l'uso questo

jQuery("#ContactInfo").prop('disabled', true); 

e questo per disabilitare

jQuery("#ContactInfo").prop('disabled', false); 

Se si rimuove una proprietà nativa come disabled utilizzando removeAttr (o removeProp) non sarà in grado di aggiungere di nuovo . Non dovrebbe essere usato per cambiare il valore della proprietà.

Problemi correlati