2012-06-26 15 views
5

jQuery öğesinde ve html onay kutusundan devre dışı bırakılan özniteliğin eklenmesi ve kaldırılmasıyla ilgili bir turne işleminde yaşıyorum. Ben kutuyu işaretlediğinizde, bir textarea'ya bir adres yazamayacağınız veya bir arama kutusundan seçmeniz gereken bir şey istiyorum. Daha sonra bitirdim, ama onay kutusu sorunuma neden oluyor. Bu benim fonksiyon çağrım. Bu işlev, yalnızca iyi bir şekilde girer, ancak devre dışı bırakılmış öznitelikleri işaretli olduğunda kaldırmaz ve engelli eklemek için addAttr yöntemini kullanamayacağı bir hata atar.Bir html onay kutusundan jQuery ile devre dışı bırakma özniteliği kaldırma ve ekleme

//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');  
    } 
} 

Ve bu html olduğunu ...

<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> 
ben onay kutusunu devre dışı özelliği ayarlanarak berbat Neyim

?

cevap

8

Eğer removeAttr kullanılarak disabled (veya removeProp) gibi yerel bir özelliği kaldırırsanız, yeniden eklemek mümkün olmayacaktır

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

devre dışı bırakmak için kullanacağım bu

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

ve bu etkinleştirmek için . Mülk değerinin değiştirilmesi için kullanılmaması gerekiyor.

İlgili konular