在更改组合框时在输入框中插入数组项目
问题描述:
当组合框的选择更改时,我希望将特定的数组项设置为输入标签的值。在更改组合框时在输入框中插入数组项目
<%@ page language="java" import="java.util.*;" pageEncoding="ISO-8859-1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<script language="javascript">
function check()
{
if(!validate())
return false;
}
function validate()
{
if (document.form.amount.value <=0)
{
alert ("Please enter valid loan amount.");
return false;
}
else
return true;
}
var arr = new Array();
arr[0] = new Array("-select-", "10.0","10.5", "12.0");
function change(combo1) {
document.getElementById("rate").style.visibility = "visible";
var sel = document.getElementById("combo1");
var val = document.getElementById("rate").value;
for(var i = 0, j = sel.options.length; i < j; ++i) {
if(sel.options[i].innerHTML == val) {
sel.selectedIndex = i;
break;
}
}
}
}
</script>
<jsp:include page="include.jsp"></jsp:include>
<body>
<br>
<form action="PaymentServlet.do" name="form" method="post"
ONSUBMIT="return check()">
<fieldset>
<legend>
<font style="font-family: sans-serif" size="4px" color="Megenta">Online Loan
Application Page</font>
</legend>
<br />
Loan Type
<select name="combo1" onchange="change(this);">
<option value="0">
-Select-
</option>
<option value="1">
Home Loan
</option>
<option value="2">
Education Loan
</option>
<option value="3">
Car Loan
</option>
</select>
<br />
Interest Rate(%)<input type="text" name="rate" style="visibility: hidden;">
<br />
Loan Amount
<input type="text" name="loanamount" />
<br />
<input type="submit" name="go" value="o Go o" />
</fieldset>
</form>
</body>
</html>
取决于贷款型我想选择来自阵列的相应利率和希望此数组项将被用作输入的标记,其名称=“速率”的值。
答
为了得到一个组合框的值,你需要做到以下几点:
var val = sel.options[sel.selectedIndex].value;
sel
是您的组合框
答
不能给予名称paramater使用document.getElementById("elementid")
。参数必须是元素名称的id
。
实际上,您不需要使用document.getElementById,因为您将this
作为参数更改函数返回。 this
指的是实际的元素。
所以,你的变化函数应该是这样的,
function change(combo1) {
document.getElementById("rate").style.visibility = "visible";
document.getElementById("rate").value = arr[combo1.selectedIndex];
}
你的数组定义是错误的为好。正确的是在这里,
var arr = new Array();
arr[0] = new Array("-select-", "10.0","10.5", "12.0");
var arr = new Array("-select-", "10.0","10.5", "12.0");
最后不要忘记加上id属性的速率输入,
<input type="text" id="rate" name="rate" style="visibility: hidden;">
这里是完整的代码和一个DEMO
<script language="javascript">
function check()
{
if(!validate())
return false;
}
function validate()
{
if (document.form.amount.value <=0)
{
alert ("Please enter valid loan amount.");
return false;
}
else
return true;
}
var arr = new Array("-select-", "10.0","10.5", "12.0");
function change(combo1) {
document.getElementById("rate").style.visibility = "visible";
document.getElementById("rate").value = arr[combo1.selectedIndex];
}
</script>
<body>
<br>
<form action="PaymentServlet.do" name="form" method="post"
ONSUBMIT="return check()">
<fieldset>
<legend>
<font style="font-family: sans-serif" size="4px" color="Megenta">Online Loan
Application Page</font>
</legend>
<br />
Loan Type
<select name="combo1" onchange="change(this);">
<option value="0">
-Select-
</option>
<option value="1">
Home Loan
</option>
<option value="2">
Education Loan
</option>
<option value="3">
Car Loan
</option>
</select>
<br />
Interest Rate(%)<input type="text" id="rate" name="rate" style="visibility: hidden;">
<br />
Loan Amount
<input type="text" name="loanamount" />
<br />
<input type="submit" name="go" value="o Go o" />
</fieldset>
</form>
</body>
答
如果你的数组定义是像
arr[0] = new Array("-select-", "10.0","10.5", "12.0");
然后
function change(combo1) {
document.getElementById("rate").style.visibility = "visible";
var rate = document.getElementById("rate");
rate.value = arr[0][combo1.selectedIndex];
}
和你有什么问题? – 2013-03-24 19:22:23
user @ mr.VVoo无法获取输入标签值中的数组值。 – rahul 2013-03-24 19:24:12