在jsp中经常会遇到把js变量赋给java变量,或者将java变量赋给js变量的情况,在此将通用的处理方法小结如下:
1、java变量传给js写法如下:
var a="<%=javaParam%>"
注意这里要将引号""加上;
2、js变量给java稍微复杂点,一般是在表单中用一个
的隐藏表单元素,然后在脚本中将js变量值赋给它:
var jsParamValue='aaaa'
form1.jsParam.value=jsParamValue
然后就可以request.getPrameter("jsPrama")
来取得js变量值了。
首先要明确两点:1、asp是运行在服务器端的,js是运行在客户端即浏览器中的;
2、执行顺序是先asp,然后才是js
因此,要想把js的变量值传递给asp变量,就要把当前页面重新刷新运行一次,同时把js的变量值作为url的参数传递给后台的asp代码,然后asp的变量再通过request对象获取即可。比如:
<%
if request("abc")<>"" then
abc=request("abc")'这个abc是asp变量
response.write "js传递的变量内容为:" &abc
else
%>
<script>
var abc=123 //这个abc则是js变量
location.href="?abc="+abc
</script>
<%
end if
%>
参考示例如下:
<html><head>
<meta http-equiv="Content-Type" content="text/html charset=gb2312"/>
<title>js form 表单传递变量参数</title>
</head>
<body>
<form id="testForm" name="testForm" method="post" >
<input type="text" name="name" /><br/>
<input type="button" onClick="to_submit()" value="提交"/>
</form>
<script language="javascript">
//定义变量
var str='hello'
//获取form表单
var formdeal= document.getElementById("testForm")
//制定表单action地址,可以加一些变量参数
formdeal.action="deal.php?parms="+str
alert( formdeal.action)
//制定跳转页面打开方式,默认的是_self,如果想在新窗口打开,可以用_blank
formdeal.target="_self"
//提交表单
formdeal.submit()
}
</script>
</body>
</html>