首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > ASP >

还是JS函数的处理有关问题,再次求教

2012-03-03 
还是JS函数的处理问题,再次求教!以下代码的效果是:用户输入面积,然后选择物业类型(这个SELECT是二级联动),

还是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。

热点排行