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

问题描述:

我的应用程序包含一个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> 

对于启动..你的选择是缺少

id="selmenu" 

而且我也觉得,你的代码

(state.value == "All Campaign") 

应该

(state.value == 2) 

因为你引用价值,而不是文字。

+0

+正如汤姆格伦提到的...你不是将元素分配给任何变量。起初我没注意到的东西:) – Damb 2011-04-01 10:41:16

您没有将您的document.getElementById()调用的值分配给任何东西。

试试这个:

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

编辑:此外,如先前建议你需要给你的选择菜单 “selmenu” 的ID。

试试这个

<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> 

这里是你需要做的..

给你的选择元素的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 ; 

     }

请注意,VA选择的选择是1或2,而不是选项中的文字。为了选择文本选项,你必须读取options数组元素的innerHTML。