我有复选框和文字输入
当我选中复选框时,我需要启用文本输入,当取消选中复选框时禁用文本输入
我正在使用以下代码,但在检查时取消选中/禁用时会执行反向启用,以便如何根据我的需要进行调整。
<input type="checkbox" id="yourBox">
<input type="text" id="yourText">
<script>
document.getElementById('yourBox').onchange = function() {
document.getElementById('yourText').enabled = this.checked;
};
</script>
任何帮助〜谢谢
答案 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)
更好的解决方案可能是:
!name1.match(/^[A-Za-z]+$/)
&#13;
!/^[0-9a-zA-Z]+$ /
&#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)" />