2013-04-09 62 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> 
相關問題