看一下是不是对话框关闭后,主页面的程序又提交了form

解决方案 »

  1.   

    页面的程序又提交了form
    什么意思?
      

  2.   

    就是说你的window.showModalDialog执行过后,后面的代码直接或间接的导致了父窗口的刷新。
    尤其是看看是不是提交了表格(form),而且目标设置成了父窗口。
      

  3.   

    HTML代码: function changeValue()
    {
    var manager=window.showModalDialog('chooseEmployee.aspx','','dialogWidth=400px;dialogHeight=400px,center=1');
    if(manager)
    document.Form1.all['TextBox3'].value=manager;
    }
    </script>
    </HEAD>
    <body MS_POSITIONING="GridLayout">
    <form id="Form1" method="post" runat="server">
    <FONT face="宋体"><INPUT id="Button6" style="Z-INDEX: 101; LEFT: 32px; WIDTH: 155px; POSITION: absolute; TOP: -8px; HEIGHT: 22px"
    type="hidden" value="Button" name="Button6" runat="server">
    <TABLE id="Table1" style="Z-INDEX: 102; LEFT: 104px; VERTICAL-ALIGN: super; WIDTH: 300px; POSITION: absolute; TOP: 40px; HEIGHT: 472px"
    height="472" cellSpacing="1" cellPadding="1" width="300" border="1">
    <TR>
    <TD>
    <P>
    <asp:textbox id="TextBox1" style="Z-INDEX: 50; LEFT: 50px; POSITION: absolute; TOP: 40px" runat="server"
    Width="168px" Height="24px" BorderColor="Red" BackColor="White"></asp:textbox><asp:label id="Label3" style="Z-INDEX: 50; LEFT: 100px; POSITION: absolute; TOP: 70px" runat="server"
    Width="64px" Height="16px" BackColor="#C0FFFF">部门名称</asp:label><asp:textbox id="TextBox2" style="Z-INDEX: 50; LEFT: 50px; POSITION: absolute; TOP: 100px" runat="server"
    Width="168px" Height="24px" BorderColor="Red" BackColor="White"></asp:textbox><asp:label id="Label1" style="Z-INDEX: 50; LEFT: 100px; POSITION: absolute; TOP: 130px" runat="server"
    Width="64px" Height="16px" BackColor="#C0FFFF">部门主管</asp:label><asp:textbox id="TextBox3" style="Z-INDEX: 50; LEFT: 50px; POSITION: absolute; TOP: 160px" runat="server"
    Width="120px" Height="24px" BorderColor="Red" BackColor="White" Enabled="False"></asp:textbox><asp:button id="Button1" style="Z-INDEX: 50; LEFT: 170px; POSITION: absolute; TOP: 160px" runat="server"
    Width="48px" BorderColor="Red" BackColor="#FFFF80" Text="选择"></asp:button><asp:label id="Label4" style="Z-INDEX: 50; LEFT: 100px; POSITION: absolute; TOP: 190px" runat="server"
    Width="32px" Height="8px" BorderColor="#C0C0FF" BackColor="White">备注</asp:label><asp:textbox id="TextBox4" style="Z-INDEX: 50; LEFT: 50px; POSITION: absolute; TOP: 220px" runat="server"
    Width="168px" Height="80px" BorderColor="Red" BackColor="White"></asp:textbox><asp:button id="Button3" style="Z-INDEX: 50; LEFT: 72px; POSITION: absolute; TOP: 320px" runat="server"
    Width="49px" BorderColor="Red" BackColor="#FFFF80" Text="删除"></asp:button><asp:button id="Button2" style="Z-INDEX: 50; LEFT: 150px; POSITION: absolute; TOP: 320px" runat="server"
    Width="56px" Height="24px" BorderColor="Red" BackColor="#FFFF80" Text="确认"></asp:button></P>后台程序:
    private void Page_Load(object sender, System.EventArgs e)
    {
            

    if(!IsPostBack)
    {   
    Button1.Attributes.Add("onclick","return changeValue();");
    }....
    }
    private void Button1_Click(object sender, System.EventArgs e)
    {
               Button1.Attributes["onclick"]=("changeValue()");
                    
    }
      

  4.   

    我对你那种写法不是很懂,你试试吧:改一句:
    Button1.Attributes["onclick"]=("return changeValue()");加一句:
    function changeValue()
    {
    var manager=window.showModalDialog('chooseEmployee.aspx','','dialogWidth=400px;dialogHeight=400px,center=1');
    if(manager)
    document.Form1.all['TextBox3'].value=manager;
    return false; //这句是加上的。
    }
      

  5.   

    你是对的
    return false;我没写这一句
    这句有什么作用啊
      

  6.   

    还真被我蒙上了。呵呵。你的那些写法我不是很了解,但是凭经验,很多Button、submit之类的东西在onclick事件发生之后有时会接着发生表单的提交或者页面刷新。加上一个return false;可以让这次click失效,后面的事件也就不会发生了。