日期:2014-05-18  浏览次数:20862 次

JSP中的变量为什么在JavaScript中不能用?
代码片断如下:

<body>
<input   name= "username "   type= "text "   id= "username "   size= "20 "   >
<input   name= "password "   type= "password "   id= "password "   size= "20 ">
<select   name= "CorpSelect "   id= "CorpSelect "     onClick= "CorpListSet(); ">
                                    <%
                                    UnsafeInvoke   invoke=new   UnsafeInvoke();
                                    String   corps= " ";
                                    String   temp=invoke.unsafeWebGetCorplist(false);
                                corps+= " <option> ";
                                    corps+=temp;
                                    corps+= " </option> ";
                                        out.println(corps);
String   aaa= "aabbcc ";
                                    %>
                                    </select>

<script   language= "javascript ">

function   CorpListSet(){
alert( " <%=corps%> ");

}
</script>
</body>


UnsafeInvoke是我自己定义的JAVA类,unsafeWebGetCorplist是类中的方法,这个没什么问题,因为动态获取下拉框中的内容已经填充,说明corps这个变量已经被赋值了.但是为什么在脚本中alert( " <%=corps%> ")的时候,一点反应也没有呢?为了测试在JSP中定义了一个变量String   aaa= "aabbcc ";,然后alert( " <%=aaa%> ");就可以弹出对话框的.

------解决方案--------------------
在js里面欠 <%%> 这样的东西不太好,你可以用隐藏表单 <input type= "hidden " name= "hidden " value= "test " > 你可以把 <%%> 这玩意放到 value= " <%%> "这里面来,然后你再用js获取这个hidden的值 ......

见意: <%%> 这玩意能不用最好就不要用


java交流群(QQ群:45459926),有意思的可以加入
------解决方案--------------------
應該是時間延遲問題
你兩個一起試一下
alert( " <%=aaa%> ");
alert( " <%=corps%> ");