还是JS函数的处理问题,再次求教!
以下代码的效果是:用户输入面积,然后选择物业类型(这个SELECT是二级联动),最后得出所选类型与输入面积的乘积
现在我的问题是:输入面积,在选择完类型,点提交后,计算机结果出来了,但是在选择类型的第二联菜单就回到 "==请选择== "状态,如何能使提交后,第二联菜单显示的是所选择的项呢?
<script language= "JavaScript ">
<!--
var subcat = new Array();
subcat[0] = new Array( '商铺 ', '一线铺 ', '10000 ')
subcat[1] = new Array( '商铺 ', '二线铺 ', '20000 ')
subcat[2] = new Array( '写字楼 ', '专业写字楼 ', '30000 ')
subcat[3] = new Array( '写字楼 ', '非专业写字楼 ', '40000 ')
subcat[4] = new Array( '住宅 ', '豪华住宅 ', '8000 ')
subcat[5] = new Array( '住宅 ', '普通住宅 ', '7000 ')
function changeselect1(locationid)
{
var f=document.form1;
f.s2.length = 0;
f.s2.options[0] = new Option( '==请选择== ', ' ');
for (i=0; i <subcat.length; i++)
{
if (subcat[i][0] == locationid)
{f.s2.options[f.s2.length] = new Option(subcat[i][1], subcat[i][2]);}
}
document.getElementsByName( "s2 ")[0].onchange = function()
{ var leixing = this.value;
totalprice = f.fangmj.value * leixing;
}
return totalprice;
}
function getResult()
{
var str = 0;
var f = document.form1; //调用changeselect1()的返回值
var total = changeselect1();
document.getElementById( "result ").innerText = total;
}
//-->
</script>
<form id= "form1 " name= "form1 " method= "post " >
用户输入面积:
<input name= "fangmj " type= "text " id= "fangmj " size= "6 " maxlength= "6 " />
选择物业类型:
<select name= "s1 " onChange= "changeselect1(this.value) ">
<option> ==请选择== </option>
<option value= "商铺 "> 商铺 </option>
<option value= "写字楼 "> 写字楼 </option>
<option value= "住宅 "> 住宅 </option>
</select>
<select name= "s2 ">
<option> ==请选择== </option>
</select>
<div id= "result "> </div>
<input name= "button " type=button onClick= "getResult() " value= "提交 " />
<input type= "reset " name= "reset " value= "取消 " />
[解决办法]
在window.onload函数中调用一次changeselect1 即可。
[解决办法]
不知道你为什么要写那么麻烦。
<script language= "JavaScript ">
<!--
var subcat = new Array();
subcat[0] = new Array( '商铺 ', '一线铺 ', '10000 ')
subcat[1] = new Array( '商铺 ', '二线铺 ', '20000 ')
subcat[2] = new Array( '写字楼 ', '专业写字楼 ', '30000 ')
subcat[3] = new Array( '写字楼 ', '非专业写字楼 ', '40000 ')
subcat[4] = new Array( '住宅 ', '豪华住宅 ', '8000 ')
subcat[5] = new Array( '住宅 ', '普通住宅 ', '7000 ')
function changeselect1(locationid)
{
var f=document.form1;
f.s2.length = 0;
f.s2.options[0] = new Option( '==请选择== ', ' ');
for (i=0; i <subcat.length; i++)
{
if (subcat[i][0] == locationid)
{f.s2.options[f.s2.length] = new Option(subcat[i][1], subcat[i][2]);}
}
}
function getResult()
{
document.getElementById( "result ").innerText = document.getElementById( "s2 ").value*document.form1.fangmj.value;
}
//-->
</script>
<form id= "form1 " name= "form1 " method= "post " >
用户输入面积:
<input name= "fangmj " type= "text " id= "fangmj " size= "6 " maxlength= "6 " />
选择物业类型:
<select name= "s1 " onChange= "changeselect1(this.value) ">
<option> ==请选择== </option>
<option value= "商铺 "> 商铺 </option>
<option value= "写字楼 "> 写字楼 </option>
<option value= "住宅 "> 住宅 </option>
</select>
<select name= "s2 ">
<option> ==请选择== </option>
</select>
<div id= "result "> </div>
<input name= "button " type=button onClick= "getResult() " value= "提交 " />
<input type= "reset " name= "reset " value= "取消 " />
另外你原来的代码还有BUG,如果我是先输入面积再选择物业,点击提交就有数值,而如果我先选择物业再输入面积,点击提交就会为0。