2013-04-09 34 views
-3

如何在默认情况下禁用文本框并让用户通过复选框启用它?如何在默认情况下禁用文本框并在以后启用?

<input type="checkbox" id="sccb" name="science" value="science"> 
<script type="text/javascript"> 
    $(document).ready(function(){ 
    $('#sccb').click(function(){ 
    if (this.checked) { 
    $('#cns').removeAttr("disabled"); 
    } 
    else { 
    $("#cns").attr("disabled", true); 
    } 
    }); 
    }); 
</script> 

<input type="text" id="cns" name="coornamescience" disabled="disabled" size="30"></input> 
+4

随着一些JavaScript代码,但我没有看到任何[努力或独立研究的证据。(http://stackoverflow.com/questions/how-to-ask)的 – 2013-04-09 03:30:08

+1

可能重复[启用/从下拉菜单中选择的选项禁用文本框](http://stackoverflow.com/questions/5258182/enable-disable-of-textbox-on-option-selected-from-drop-down-menu) – 2013-04-09 04:30:41

回答

3

使用disabled="disabled"的文本框,然后使用JS/jQuery来启用上点击

演示 - http://jsfiddle.net/jaCmE/

<textarea rows="4" cols="50" disabled="disabled" id="mytextbox"> 
</textarea> 

<input type="checkbox" id="checkbox1" /> 

然后用Javascript/jQuery这样的 -

$(document).ready(function(){ 
    $('#checkbox1').click(function(){ 
    if (this.checked) { 
    $('#mytextbox').removeAttr("disabled"); 
    } 
    else { 
    $("#mytextbox").attr("disabled", true); 
    } 
    }); 
}); 
+0

你永远不会当复选框未选中时,重新禁用文本框。 – icktoofay 2013-04-09 03:39:55

+0

@icktoofay用户从来没有问过这个问题......它并不在最初的要求中。此外,这个问题还没有从调查问卷中获得任何研究成果,所以它只是一个基本的砖头,而不是实际的工作......他可以继续他的工作从这里开始 – swapnesh 2013-04-09 03:41:52

+0

什么用途是您只能启用的复选框?如果它应该只做一次,它应该是,我不知道,一个*按钮*?也许一个点击一次后会自动禁用? – icktoofay 2013-04-09 03:44:02

0

使用JavaScript,首先禁用tex t盒。然后将一个change事件处理程序添加到该复选框。其中,将文本框的禁用状态设置为与选中状态相反。

+0

[** Try it。**](http://jsfiddle.net/WHSc2/embedded/result,html,js/) – icktoofay 2013-04-09 03:34:54

0

你可以JavaScript来禁用页面加载的文本框,然后添加一个事件到复选框重新启用文本框。

0
<script type="text/javascript"> 
function disenable(e) { 
    e[0].disabled = e[1].checked ? "" : "disabled" 
} 
</script> 
<form action=""> 
<input type="text" disabled="disabled"><br> 
<input type="checkbox" onchange="disenable(this.form)">Click me 
</form> 

这里e是表单,e [0]是第一个输入(文本框),e [1]是第二个输入(复选框)。 当该复选框更改它调用禁用通过表单作为输入时,该功能擦除或设置文本框的禁用参数besed它的检查状态。

0

你可以使用jquery来定位复选框,如果复选框被启用,那么文本框被禁用,反之亦然。 HTML:

<form action=""> 
<input type="text" name="box" id="mytext" /> 
<input type="checkbox" name="check" id="mycheckbox" /> 
</form> 

JS:

$(function(){ 
    //Disable the textbox 
    var textbox = $('#mytext'); 
    textbox.attr("disabled","disabled"); 

    $('#mycheckbox').change(function(){ 
     //Enable input 
     if(textbox.attr('disabled')){ 
      $('#mytext').removeAttr('disabled'); 
     }else { 
      textbox.attr("disabled","disabled"); 
     } 
    }); 

}); 

下面是对的jsfiddle图:http://jsfiddle.net/X5TVx/

0

正如icktoofay说,把它留在标记启用,然后使用脚本来禁用它。

<input type="text" id="i0"> 
<label for="cb0"><input id="cb0" type="checkbox">Check to enable</label> 

<script> 
    document.getElementById('i0').disabled = true; 
    document.getElementById('cb0').onclick = function() { 
    document.getElementById('i0').disabled = !this.checked; 
    }; 
</script> 
相关问题