我想实现一个功能就是在前台js里调用后台方法,可以js方法里的每个参数用alert弹出都好好的,就是调用后台参数老是提醒不存在该定义,在线求解啊
 function Send(Id,Id2,tono, serviceno) {
    if (confirm("是否发送短信?")) {
            <%=SendMessage(Id,Id2,tono,serviceno);%>
这段代码,如果每一个参数alert出来都不会提示错误,在传给SendMessage做参数时,Id不会提示不存在该定义,但是后面三个都会,不知道是什么原因,帮忙解释下吧,给个正确的解决方法啊

解决方案 »

  1.   

    if (confirm("是否发送短信?")) { 
      // ajax 请求
    }参考
    http://www.w3school.com.cn/ajax/index.asp
      

  2.   

    包在asp里面 那这个参数传的当然是未定义的。。
    我没看到具体的 但就你这样写,最起码也应该是
    <%=SendMessage(%>+Id,Id2,tono,serviceno+<%=);%>;
    至于这样会不会报错我就不清楚了。。
      

  3.   

    你应该用document。write()试试,在function里面写小脚本 我确实没有使用过!!!
      

  4.   

    你出现这个以为明显是没有明白web程序运行过程
    前台代码是客户端浏览器执行,后台代码在服务器运行,都不再同一台电脑上,你怎么调?
    <%=..%>的方式是错觉,根本不能达到动态调用后台函数的目的,
    过程是:
    页面加载时<%=.. %>内部代码被作为后台代码运行,也就是说此时html都还没有发送到客户端,所有客户端的东西(html元素,js变量)全都没有生成,所以你那些作为参数的变量明显全部未定义;后台执行该代码获得结果后,用该结果替换<%= %>,然后和html一起发送到客户端,在页面再次发出客户端请求前,不可能调用后台函数。过程就是这样,你想由js生成参数,调用后台函数的想法是无法实现的。
    还是写Ajax请求吧,不不进行通信是不可能实现跨电脑调用函数的
      

  5.   

    正解,说白了 <%=..%> 只能用一次。  用。ajax非常好用
      

  6.   

    调用后台的话还是ajax吧,方便并且强大
      

  7.   

    这怎么可以一个是javascript
    一个是服务器端程序
    能在一起运行嘛
      

  8.   

    能这样使用才怪:
    function Send(Id,Id2,tono, serviceno) {
      if (confirm("是否发送短信?")) { 
      <%=SendMessage(Id,Id2,tono,serviceno);%>js代码是在客户端执行的,<%=SendMessage(Id,Id2,tono,serviceno);%>是在服务器端执行的。
    根本就不在同一个地方,Send(Id,Id2,tono, serviceno) 这个参数的值,怎么可能传得了到:
    <%=SendMessage(Id,Id2,tono,serviceno);%>
    你最好用ajax吧。