1

我正在尝试创建一个表单,其中一个文本字段加载被禁用,如果用户想要输入这个字段,他们必须单击一个复选框。我现在有这个。

但是,启用文本框下方的加载并勾选复选框将禁用它。如何对此进行修改,以便将其反转。即文本框首先被禁用,然后单击复选框启用它?

Javascript代码

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

HTML 代码

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

谢谢。

4

2 回答 2

5

尝试使用此设置:

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

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

http://jsfiddle.net/93HJ3/

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

如果您查看http://api.jquery.com/prop/,您会发现它是更适合更改元素属性(如“禁用”、“只读”、“已检查”等)的 jQuery 方法。并且关于差异的一个很好的讨论:.prop() 与 .attr()。但是,如果您需要更改属性或属性,这完全取决于您,因为它们具有不同的含义。

于 2013-01-15T16:39:24.493 回答
0

如果您不想使用 jQuery,则纯 JavaScript 等效。

<input type="text" id="inputbox" diasbled="disabled" />

var inputbox = document.getElementById('inputbox');

document.addEventListener('DOMContentLoaded',function(){
    inputbox.removeAttribute('disabled');
});
于 2017-03-03T16:18:15.443 回答