Page_Load:this.btnAdd.Attributes.Add("onclick","if (document.getElementById('"+txtTPMCode.ClientID+"').value.length == 0){alert('请输入TPM代码!');
document.getElementById('"+txtTPMCode.ClientID+"').focus();return false;}else if(...){...;return false;}else{return true;}
");

解决方案 »

  1.   

    感你是不是直接在aspx标记中这样写?onclick="add_click"如果是改一下,删除这句在Page_Load中用
    btnAdd.Attributes.Add(("onclick","return(add_click());");你的代码也改一下
    <script language="javascript">
    var objtxtTPMCode = document.getElementById("<%=txtTPMCode.ClientID%>"); 
    var objtxtDepositChange = document.getElementById("<%=txtDepositChange.ClientID%>");function ChkAddInput()
    {
    var rt=true;
    if (objtxtTPMCode.value.length == 0)
    {
    alert("请输入TPM代码!");
    objtxtTPMCode.focus();
    rt= false;
    }
    if (objtxtDepositChange.value.length == 0)
    {
    alert("请输入变更后押金!");
    objtxtDepositChange.focus();
    rt= false;
    }
    return rt;
    }
    function add_click()
    {
    var rt=false;
    if(ChkAddInput())
    {
    rt=window.confirm ("请确认您输入的信息无误,确认后将不可更改!")
    }
    return rt;
    }
    </script>
      

  2.   

    问题是这样的:
    由于<script language="javascript">
     //新增检查
     var objtxtTPMCode = document.getElementById("<%=txtTPMCode.ClientID%>"); //获得TPMCode
     var objtxtDepositChange = document.getElementById("<%=txtDepositChange.ClientID%>");
    出现在<body>的前面,也就是说运行到这里的时候document还没有装载完成,document.getElementById()当然就找不到对象了;
    按照我前面给出的方法, var objtxtTPMCode 只是获得一个字符串,这是可以的,然后在function内部才调用document.getElementById,这时候页面肯定已经加载完成,就没问题了;老孟的方法也是可行的,先定义变量,不赋值,最后在</form>后面才进行赋值,道理是一样的。
      

  3.   

    完整的代码如下:
    <script language="javascript">
     //新增检查
     var objtxtTPMCode = "<%=txtTPMCode.ClientID%>"; //获得TPMCode
     var objtxtDepositChange = "<%=txtDepositChange.ClientID%>";
                                                                            //获得更改后押金
      function ChkAddInput()
       {
          if (document.getElementById(objtxtTPMCode).value.length == 0)
          {
             alert("请输入TPM代码!");
             document.getElementById(objtxtTPMCode).focus();
             return false;
           }
           if (document.getElementById(objtxtDepositChange).value.length == 0)
           {
             alert("请输入变更后押金!");
             document.getElementById(objtxtDepositChange).focus();
             return false;
           }
           return window.confirm ("请确认您输入的信息无误,确认后将不可更改!");
     }
       </script>
    <body>
      .....=================================================================
    Page_Load
    {
        if(!IsPostBack)
        {
            btnAdd.Attributes.Add("onclick","return ChkAddInput();");
        }
    }===================