Javascript启用已禁用的文本框

use*_*430 1 html javascript jquery textbox

我正在尝试创建一个禁用文本字段加载的表单,如果用户想要输入此字段,则必须单击复选框.我现在有这个.

但是,如果文本框下方的内容已启用并打勾,则复选框将禁用它.如何进行修改以使其相反.即首先禁用文本框并单击复选框启用它?

Javascript代码

$(document).ready(function () {
            $('#testcheckbox').change(function() {
                $('#testtextfield').attr('disabled', this.checked);
            });
        });
Run Code Online (Sandbox Code Playgroud)

HTML代码

<input type="checkbox" id="testcheckbox" />
<input type="text" id="testtextfield" />
Run Code Online (Sandbox Code Playgroud)

谢谢.

Ian*_*Ian 5

尝试使用此设置:

<input type="checkbox" id="testcheckbox" />
<input type="text" id="testtextfield" disabled="disabled" />

$(document).ready(function () {
    $('#testcheckbox').change(function() {
        $('#testtextfield').prop('disabled', !this.checked);
    });
});
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/93HJ3/

在这种情况下,disabled默认情况下是文本框.然后,当单击该复选框时,根据其反转checked属性禁用文本框,以获得您想要的相反行为.

如果你看一下http://api.jquery.com/prop/,你会发现更多元素的属性如"禁用","只读","检查"等等,更多地接受jQuery方法.关于差异的一个很好的讨论:.prop()vs .attr().但是,如果您需要更改属性或属性,这取决于您,因为它们具有不同的含义.

  • 您还应该解释为什么使用`$ .prop`而不是`$ .attr` (3认同)