2015-09-13 49 views
0

我嘗試使用prop刪除HTML文檔的禁用屬性,但由於某些原因,它無法工作。 這裏是我的HTMLjQuery onchange事件不會將HTML的HTML禁用屬性設爲false

<form> 

<div class="form-group"> 
<label class="form-label">Select Type</label> 
<div class="form-field"> 
<input type="radio" name="estimate-type" id="estimate-type" value="publication">Publication 
<input type="radio" name="estimate-type" id="estimate-type" value="package">Package 
</div> 
</div> 

<div class="form-group hidden"> 
<label class="form-label">Select Editions</label> 
<div class="form-field"> 
<input type="radio" name="publication-type" id="publication-type" value="all" checked>All Editions 
<input type="radio" name="publication-type" id="publication-type" value="manual">Select Editions 
</div> 
</div> 

<div class="form-group hidden" id="editions"> 
<label class="form-label"></label> 
<div class="form-field"> 
<input type="checkbox" name="edition-mumbai" id="edition-mumbai" value="mumbai" checked disabled>Mumbai 
<input type="checkbox" name="edition-delhi" id="edition-mumbai" value="delhi" checked disabled>Delhi 
<input type="checkbox" name="edition-chennai" id="edition-chennai" value="chennai" checked disabled>Chennai 
<input type="checkbox" name="edition-calcutta" id="edition-calcutta" value="calcutta" checked disabled>Calcutta 
</div> 
</div> 

<div class="form-group"> 
<label class="form-label"></label> 
<div class="form-field"> 
<button type="button" name="select-estimate-type" id="select-estimate-type">Proceed</button> 
</div> 
</div> 

<div id="publication-estimate"> 
<div class="form-group"> 
<label class="form-label">Select Type</label> 
<div class="form-field"> 
Publication 
</div> 
</div> 
</div> 

<div id="package-estimate"> 
Package 
</div> 
</form> 

我用現在使用顯示切換隱藏類的顯示器無法比擬的唯一的CSS:無;

jQuery代碼是

$(document).ready(function(){ 
$("#estimate-type").on('change', function(){ 
    if ($(".form-field").find('input[value=publication]').prop('checked')){ 
     $(".hidden").show(); 
    } 
    else{ 
     $(".hidden").hide(); 
    } 
}); 
$("#select-estimate-type").on('click', function(){ 
    if ($(".form-field").find('input[value=publication]').prop('checked')){ 
     $("#publication-estimate").show(); 
     $("#package-estimate").hide(); 
    } 
    else{ 
     $(".hidden").hide(); 
     $("#package-estimate").show(); 
     $("#publication-estimate").hide(); 
    } 
}); 
$("#publication-type").on('change', function(){ 
    if ($(".form-field").find('input[value=manual]').prop('checked')){ 
     $(".form-field input").prop('disabled', false); 
    } 
    else{ 

    } 
}); 
}); 

我面臨的問題是,當我改變點擊單選按鈕「選擇版本」,jQuery代碼不刪除「禁用」屬性。我看了一篇文章說,比較喜歡prop()而不是removeAttr() 請大家幫忙。

回答

2

.form-field s是<div> s並且沒有disabled屬性。您需要選擇<input>;例如,

$(".form-field input").prop('disabled', false); 
+1

@KilvishShakal:您也有多個具有相同'id'的元素,這是無效的。刪除這些文件並按名稱選擇它們,例如''('input'[name =「publication-type」]')。on('change',...'。 – Ryan

+0

謝謝!我在處理jQuery時忘了基本知識。 –