禁用选择框并使用一个带有JavaScript的复选框启用文本框

时间:2015-02-03 17:25:33

标签: javascript html

我是JavaScript的新手;我一整天都在谷歌搜索,但我只找到了如何使用一个复选框启用和禁用一个文本框。

这是我的代码

的JavaScript

 function enable_text(status){
     status=!status;    
     document.sr2.other_text.disabled = status;
 }

HTML

<form name=sr2 method=post>
    <input type="checkbox" name=others onclick="enable_text(this.checked)">
    Others
    <input type=text name=other_text>
</form>

注意:我发布的代码仅适用于取消选中复选框时将启用的文本框。

我的问题是如何在取消选中复选框后禁用选择标记并启用文本框?

3 个答案:

答案 0 :(得分:2)

在您的文本框中添加一个ID,然后只需将复选框的onclick放在,而不是函数调用。

 <form name=sr2 method=post>
 <input type="checkbox" name=others onclick= "document.getElementById('id_of_txtbox').disabled=this.checked;">Others
 <input type=text name=other_text>

答案 1 :(得分:0)

根据您的问题,您是否尝试提供下拉菜单,然后允许他们输入不在下拉列表中的其他值?

如果是这样,这是另一种方法:

HTML:

<select name="RenewalTerm" id="RenewalTerm">
    <option value="12">12 Month</option>
    <option value="24">24 Month</option>
    <option value="36">36 Month</option>
    <option value="Other">Other</option>
</select>
<span id="RenewalTermOtherFields">
    <label labelfor="RenewalTermManual" >Enter Renewal Term: </label>
    <input type="text" name="RenewalTermManual" id="RenewalTermManual" />
</span>

<强>的JavaScript / jQuery的:

$(document).ready(function() {
    $('#RenewalTermOtherFields').hide();
    $('#RenewalTermManual').val($('#RenewalTerm').val());
    $('#RenewalTerm').change(function() {
        var selectedItem = $("select option:selected").val();
        if (selectedItem !== 'Other') {
            $('#RenewalTermOtherFields').hide();
            $('#RenewalTermManual').val($('#RenewalTerm').val());
        }
        else
        {
            $('#RenewalTermManual').val('');
            $('#RenewalTermOtherFields').show();
        }
    });
});

看到它在行动!: http://eat-sleep-code.com/#/javascript/dropdown-with-other-field

这将允许您选择&#34;其他&#34;从列表中,当你这样做时,它会自动显示一个文本框,用于自由格式输入。

答案 2 :(得分:0)

这是HTML

<input type="text" id="txt" disabled="disabled"/>
<select name="sel" id="sel">
    <option value="test1">Test 1</option>
</select>
<input type="checkbox" name="vehicle" value="Car" checked="checked" onclick="enableText(this.checked)">Uncheck to Disable Select and Enable Text

JavaScript是

function enableText(checked){
    if(!checked){
        document.getElementById('sel').disabled = true;
        document.getElementById('txt').disabled = false;
    }
    else{
        document.getElementById('sel').disabled = false;
        document.getElementById('txt').disabled = true;
    }
}

选中已禁用,取消选中复选框后启用文本,反之亦然。希望这会有所帮助。