我页面上有许多控件,比如:
<asp:textbox id="Textbox1" runat="server">
<asp:textbox id="Textbox2" runat="server">
当提交表单时会先用一个javascript函数进行内容合法性验证,比如:
......
if (Textbox1.value !=...)  //语句1
{
    alert("err!");
    return false;
}
if (Textbox2.value !=...)  //语句2
{
    alert("err!");
    return false;
}
......Textbox1是放在一个panel里,该panel一开始是被设为不可见的(visible="false"),在某种情况下程序会把它改为可见。现在问题是:当不可见时,程序如果还去判断Textbox1的内容就会出错。有没有办法使panel不可见时,语句1不起作用呢?

解决方案 »

  1.   

    var ss = document.getElementById(aspPanelControl.ID);
    if(ss.style.display != "none")
    {
       //控件是可见的执行代码
    }
    else
    {
      //控件不可见,不执行!
    }
      

  2.   

    ......
    <%if (panel.Visible == true) {%>
    if (Textbox1.value !=...)  //语句1
    {
        alert("err!");
        return false;
    }
    if (Textbox2.value !=...)  //语句2
    {
        alert("err!");
        return false;
    }
    <%}%>
    ......
      

  3.   

    ccwq:我试过你那种方法,不行。当panel不可见时,取它的ID是取不到的,会产生错误。有办法改进一下吗?hainang1234的方法可以。
      

  4.   

    var tb1=document.getElementById('TextBox1');
    if (typeof(tb1)!='undefined'&&tb1!=null&&tb1.value!=....)  //语句1
    {
        alert("err!");
        return false;
    }