我的应用程序包括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>
答案 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。