选中和取消选中复选框上的启用和禁用文本输入

时间:2013-02-28 16:10:37

标签: javascript

我有复选框和文字输入

当我选中复选框时,我需要启用文本输入,当取消选中复选框时禁用文本输入

我正在使用以下代码,但在检查时取消选中/禁用时会执行反向启用,以便如何根据我的需要进行调整。

<input type="checkbox" id="yourBox">
<input type="text" id="yourText">
<script>
document.getElementById('yourBox').onchange = function() {
document.getElementById('yourText').enabled = this.checked;
};
</script>

任何帮助〜谢谢

5 个答案:

答案 0 :(得分:27)

您只需在!前面添加this.checked

以下是显示更改的示例:

document.getElementById('yourBox').onchange = function() {
    document.getElementById('yourText').disabled = !this.checked;
};
<input type="text" id="yourText" disabled />
<input type="checkbox" id="yourBox" />

答案 1 :(得分:2)

jQuery解决方案可能是这个:

<script>
$('#yourBox').change(function() {
    $('yourText').attr('disabled',!this.checked)
});
</script>

这与Minko的答案相同,但我发现它更优雅。

答案 2 :(得分:0)

更好的解决方案可能是:

&#13;
&#13;
!name1.match(/^[A-Za-z]+$/)
&#13;
!/^[0-9a-zA-Z]+$ /
&#13;
&#13;
&#13;

答案 3 :(得分:0)

尝试一下。如果您使用标签,则在其上添加onmousedown

<form >
  <input type="text" id="yourText" disabled />
<input type="checkbox" id="yourBox" onmousedown="this.form.yourText.disabled=this.checked"/>
 </form>

答案 4 :(得分:-1)

function createInput( chck ) {
    if( jQuery(chck).is(':checked') ) {
        jQuery('<input>', {
            type:"text",
            "name":"meta_enter[]",
            "class":"meta_enter"
        }).appendTo('p.checkable_options');
    }
    else {
        jQuery("input.meta_enter").attr('disabled','disabled');
    }        
}
createInput( chck );
<input type="radio" name="checkable" class="checkable" value="3" />
<input type="radio" name="checkable" class="checkable" value="4" onclick="createInput(this)" />