禁用下拉框中特定选择的文本字段
问题描述:
我的应用程序包含一个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)
因为你引用价值,而不是文字。
答
您没有将您的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。
+正如汤姆格伦提到的...你不是将元素分配给任何变量。起初我没注意到的东西:) – Damb 2011-04-01 10:41:16