2014-04-11 22 views
0

簡單的情況,但我無法讓它工作。我有一個複選框和一個文本區域。我想要的是當用戶選中複選框時,它啓用文本區域,當用戶取消選中該框時,我希望文本區域被禁用。簡單的權利?我不知道我做錯了什麼......jQuery - 無法禁用文本區

HTML:

<!-- Checkbox --> 
<input type="checkbox" name="placeInvoiceOnHold" id="id_placeInvoiceOnHold"> 

<!-- Textarea --> 
<textarea id="id_invoiceHoldReason" rows="10" cols="40" name="invoiceHoldReason" class="text-field"></textarea> 

的jQuery在頁面底部,在<script></script>塊:

function check_holds() { 
    if ($("#id_placeInvoiceOnHold").is(":checked")) { 
    $("#id_invoiceHoldReason").attr('disabled',true); 
    } 
    else { 
    $("#id_invoiceHoldReason").removeAttr('disabled'); 
    } 
} 

我曾嘗試加入一點點的代碼,看看我的.click方法是否正在觸發並實際處理正確的元素,它是。類似這樣的:

function check_holds() { 
    if ($("#id_placeInvoiceOnHold").is(":checked")) { 
    $("#id_invoiceHoldReason").text("TESTING"); <!-- <<-- This line here as a a text --> 
    $("#id_invoiceHoldReason").attr('disabled',true); 
    } 
    else { 
    $("#id_invoiceHoldReason").removeAttr('disabled'); 
    } 
} 

「TESTING」出現在文本區域,所以我知道我有正確的元素ID。但嚴重的是,爲什麼它不工作?!我看了一下Chrome控制檯,並沒有出現任何錯誤。

這是我用盡:

$("#id_invoiceHoldReason").prop('disabled','disabled'); 
$("#id_invoiceHoldReason").disabled = true; 

無似乎工作。我錯過了什麼?

回答

4

用途:

$('#id_invoiceHoldReason').prop('disabled', true); 

Live Demo

+0

這個很好用。我的代碼中必須有其他東西,因爲它第一次不能工作。謝謝! – Garfonzo

1
$('#id_placeInvoiceOnHold').attr('disabled', 'disabled'); 

$('#id_placeInvoiceOnHold').prop('disabled', true);