在下拉框中禁用特定选择的文本字段

时间:2011-04-01 10:34:58

标签: javascript jsp

我的应用程序包括textField和下拉框。当我选择“所有广告系列”时,我应该禁用我的文本字段,并且当我选择“此广告系列”时它应该保持启用。下面给出了代码供参考,但我没有收到任何错误或例外。请帮助我。

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>TextBoxDisabling</title>
<script type="text/javascript">
    function findselected() {
        document.getElementById('selmenu');
        document.getElementById('txtField');
        (state.value == "All Campaign") ? txtField.disabled = true
                : txtField.disabled = false
    }
</script>
</head>
<body>
<form action="" method="POST" name="form1">
<select name="selmenu"
    onChange="findselected()">
    <option value="1">This Campaign</option>
    <option value="2">All Campaign</option>
</select> <input type="text" size="20" id="txtField" name="txtField"></form>

</body>
</html>

4 个答案:

答案 0 :(得分:2)

试试这个

<script type="text/javascript">
function findselected() {
    var selMenu = document.getElementById('selmenu');
    var txtField = document.getElementById('txtField');
    if(selMenu.value == '2') 
        txtField.disabled = true
    else
        txtField.disabled = false
}

</script>


<form action="" method="POST" name="form1">
   <select name="selmenu" id="selmenu" onChange="findselected()">
    <option value="1">This Campaign</option>
        <option value="2">All Campaign</option>
    </select>
    <input type="text" size="20" id="txtField" name="txtField">
</form>

答案 1 :(得分:0)

开始..你的选择缺失

id="selmenu"

我也认为,你的代码

(state.value == "All Campaign")

应该是

(state.value == 2)

因为您引用的是值,而不是文本。

答案 2 :(得分:0)

您没有将document.getElementById()的值分配给任何内容。

试试这个:

function findselected() {
        var selMenu = document.getElementById('selmenu');
        var txtField = document.getElementById('txtField');
        if(selMenu.value == 2) ? txtField.disabled = true
                : txtField.disabled = false
}

编辑:此外,如前所述,您需要为您的选择菜单提供ID为“selmenu”。

答案 3 :(得分:0)

这是你需要做的事情..

为您的选择元素提供ID

<select name="selmenu"   id='selMenu'  onChange="findselected()"> 

并使用此功能:


function findselected() {    

  var state =   document.getElementById('selmenu');  
var txt =    document.getElementById('txtField');  
stateName = state.options[state.value-1].innerHTML;
(stateName == "All Campaign") ? txt.disabled = true : txt.disabled = false  ;

        } 

请注意,selection的值为1或2,而不是选项中的文本。要选择选项中的文本,您必须阅读options数组元素的innerHTML。