导航

javascript可在URL中获取参数的值,并且赋值给控件。

Posted on 2008-03-19 03:05  madduck  阅读(603)  评论(0)    收藏  举报

<body>
<a href="javascript:history.go(-1);">goback</a>
<a href="?xx=456&yy=adb&zz=3dc">submit1</a>
<a href="?yy=456&xx=adb&zz=3dc">submit2</a>
<a href="?xxx=efb&xx=xcd&yy=dsc">submit3</a>
<a href="?zz=cer&yyy=xcd&xx=eec">submit4</a>
<form action="" method="get">
x=<input id="textX" type="text" name="xx" />y=<input id="textY" type="text" name ="yy" />z=<input

id="textZ" type="text" name ="zz" />
<script type="text/javascript" language="javascript">
<!-- //javascript中,如果要对控件操作。则控件要在javascript之前;
//可在URL中获取参数的值,并且付给控件。
var a = location.search.substr(1);
if(a.length>0)
{
 var re = /([^&]*?)\=([^&]*)/g
 var s = a.match(re);
 //版本1。此版本无法根据URL中的参数名称取得值。只能依参数的顺序取。
 //
 //   form1.yy.value =s[0].split("=")[1]; //=号后面的值。参数名是s[0].split("=")[0]
 //   form1.xx.value=s[1].split("=")[1];
 //
 
 //document.getElementById(控件ID)通过控件ID得到控件对象。
 //版本2算法:如果控件名等于参数名,则控件值等于参数值。未优化,参数数目过多,可能运算就慢。对比的次数是

参数数目的平方。
 //此算法要求控件名与参数名一致。

   for(var i=0;i<s.length ;i++)
 {
    if(document.getElementById("textX").name==s[i].split("=")[0])
    {
        document.getElementById("textX").value=s[i].split("=")[1];
        continue;
    }      
   
    if(document.getElementById("textY").name==s[i].split("=")[0])
    {
        document.getElementById("textY").value=s[i].split("=")[1];
        continue;
    }
    if(document.getElementById("textZ").name==s[i].split("=")[0])
    {
        document.getElementById("textZ").value=s[i].split("=")[1];
        continue;
    }
 }
 
}

//-->
</script>
</form>
</body>