消息关闭
    暂无新消息!
<script type="text/javascript">
         var ga;
         function setga() {
             ga = 1;
             //document.getElementById("<%=TextBox2.ClientID%>").value = ga;
             alert(ga);
         }
         function addga() {
             ga = ga + 1;
             alert(ga);
             //document.getElementById("<%=TextBox2.ClientID%>").value = ga;
         }
     </script>


为什么调用setga()后,在调addga()却提示,ga错误呢,ga不是全局变量么,,谢谢谢谢

6个回答

︿ 2
从你的代码看,木有任何问题,
楼主应该贴出异常信息,否则木有人知道你是什么问题
︿ 2
应该使用 RegisterStartupScript。而且在 asp.net 3.5 以后,应该使用 scriptmanager.RegisterStartupScript.
︿ 1
我原来是用vc写代码,现在用asp.net,有点理解不了,,前台还是后台,
以为还是像原来一样,可以直接用asp.net设计界面。难道asp.net不能用来设计界面么,那他那个设计界面是干什么的呢。。。
︿ 1
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<script type="text/javascript">

          var ga;
         function setga() {
             ga = 1;
             //document.getElementById("<%=TextBox2.ClientID%>").value = ga;
             alert(ga);
         }
         function addga() {
             ga = ga + 1;
             alert(ga);
             //document.getElementById("<%=TextBox2.ClientID%>").value = ga;
         }
    
</script>
<head runat="server">
    <title></title>

     
</head>
<body>
    <form id="form1" runat="server">
    <div>
    
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        <asp:TextBox ID="TextBox2" type="hidden" runat="server"></asp:TextBox>
    
    </div>
    <asp:Button ID="Button1" runat="server" Text="初始化" onclick="Button1_Click" />
    <p>
        <asp:Button ID="Button2" runat="server" Text="增加" onclick="Button2_Click" />
    </p>
    </form>
</body>
</html>
//////////////////////////////////////////////////////////////使用asp.net做的,以上是default.aspx中的内容,
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        string ddd = "<script>setga();</script>";
        ClientScript.RegisterClientScriptBlock(this.GetType(), "g1s", ddd, false);
        
    }
    protected void Button2_Click(object sender, EventArgs e)
    {
        string ddd = "<script>addga();</script>";
        ClientScript.RegisterClientScriptBlock(this.GetType(), "g1s", ddd, false);
    }
}
////////////////////////////////////////////////////////以上是default.aspx.cs中的代码,
分别点击两个按钮。本来想得到1,和2,的结果。但是结果确不是加1,而是未赋值
︿ 0
你用的按钮是asp控件  点击以后会刷新页面 var ga; 会重新定义,这时候是没有值得,所以才错误,
你要是想用前台处理这个功能,就把按钮换掉
<input id="Button3" type="button" value="初始化" onclick="setga()" />
<input id="Button4" type="button" value="增加" onclick="addga()" />