简单的情况,但我不能让它工作。我有一个复选框和一个文本区域。我想要的是当用户选中复选框时,它启用文本区域,当用户取消选中该框时,我希望禁用文本区域。简单吧?我不知道我做错了什么......
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;
似乎无效。我错过了什么?
答案 0 :(得分:4)
答案 1 :(得分:1)
$('#id_placeInvoiceOnHold').attr('disabled', 'disabled');
或
$('#id_placeInvoiceOnHold').prop('disabled', true);
答案 2 :(得分:1)
试试这个:
$(document).ready(function(){
$("#id_invoiceHoldReason").attr("disabled","disabled");
});