2012-06-26 17 views
5

Estoy en el proceso de aprender jQuery y en un abrir y cerrar de ojos con la adición y eliminación del atributo deshabilitado de una casilla de verificación html. Lo quiero para que cuando marques la casilla no puedas escribir en un área de texto una dirección, o si no, debes seleccionar desde un cuadro de búsqueda. Lo hice más tarde, pero la casilla de verificación está causando mi problema. Esta es mi llamada de función. Introduce bien la función, pero no elimina los atributos desactivados cuando está marcada y arroja un error que indica que no puede usar el método addAttr para volver a agregar el elemento deshabilitado.Eliminar y agregar el atributo deshabilitado con jQuery desde una casilla de verificación 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');  
    } 
} 

Y este es el 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> 

qué estoy metiendo con establecer el atributo para discapacitados en la casilla de verificación?

Respuesta

8

Para habilitar el uso de este

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

y esto para desactivar

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

Si elimina una propiedad nativa como disabled usando removeAttr (o removeProp) usted no será capaz de añadir de nuevo . No se supone que se use para cambiar el valor de la propiedad.

Cuestiones relacionadas