我想让JS的function里访问在页面定义的java变量,并修改JAVA变量的值,请问怎么可以做到?<%! int j = 0%><script language="javascript">
    function()
    {
         for(var i=0; i<5; i++)
        {
           select.option[i] = <%=j%>;
           <%j++%>
        }
    }
</script>我这样写为什么不对??

解决方案 »

  1.   

    impossible
    客户端脚本是不可能访问到服务器脚本的变量的
      

  2.   

    该段代码被服务器断解析成html输出,此时的j已经是页面的一个静态元素,值被赋予了select.option
      

  3.   

    <script language="javascript">
    function()
    {
    for(var i=0; i<5; i++)
    {
    select.option[i] = 0;}
    }
    </script>
      

  4.   

    看这样行不?
    <%! int j = 0%><script language="javascript">
        function()
        {
           <% for(int i=0; i<5; i++)
            {%>
               select.option[i] = <%=j%>;
               <% j++;
            }%>
        }
    </script>
      

  5.   

    leojay1(绯村剑心) 说的应该可以。
      

  6.   

    客户端不能修改服务器的变量可以换个角度,在服务器的java程序中写html中的js
      

  7.   

    这样就可以了:
    <% int j = 0%><script language="javascript">
        function()
        {
           <% for(int i=0; i<5; i++)
            {%>
               select.option[i] = <%=j%>;
               <% j++;
            }%>
        }
    </script>
      

  8.   

    <%%>中的内容只是在服务器端生成页面时执行一次,记住是一次,而js脚本可以在客户端多次执行。楼上的代码可以满足你的要求,另外你的问题表达得不好。
      

  9.   

    谢谢,再请问是不是JS在服务器端也是被当作HTML文本来处理的,就象楼上的用拼字符串的方法可以实现一些动态的东西???
      

  10.   

    一个JSP页面,我这里说的是一个包含JAVA代码和JS代码的页面,当你提交这个页面的时候,这个页面的所有代码被提交到服务器,在服务器端这个JSP页面被转换成SERVLET,其中的JAVA代码会在服务器端执行,而后服务器端返回一个响应串,这个串是一个HTML串,它会发送给浏览器,JS代码就是在服务器发回这个HTML串后在浏览器端执行的.而不是在服务器端当做HTML文本处理...