在页面加载时停止javascript

时间:2013-08-19 09:01:30

标签: c# javascript asp.net

我的代码中有这个javascript:

      function Renew()
      {         
          var txtID = document.getElementById('<%=dvSOItem.FindControl("txtInsertSOID").ClientID%>');    
          var ID = getCookie('SOIDTextCookie');
          txtID.value = ID;
      }

事情是,在页面加载时它总是进入这个javascripts而我的代码会中断,因为“txtInsertSOID”在编辑和查看模式下的命名方式不同。

如何防止在页面加载时运行此脚本的程序?请帮忙

5 个答案:

答案 0 :(得分:2)

如果指定的控件不存在,

FindControl将返回null。有关详细信息,请参阅MSDN Doc

<%=dvSOItem.FindControl("txtInsertSOID") != null ? dvSOItem.FindControl("txtInsertSOID").ClientID : string.Empty %>

所以将代码更改为

function Renew()
{         
    var txtID = document.getElementById('<%=dvSOItem.FindControl("txtInsertSOID") != null ? dvSOItem.FindControl("txtInsertSOID").ClientID : string.Empty %>');   
    if(txtID != null){ 
        var ID = getCookie('SOIDTextCookie');
        txtID.value = ID;
    }
}

答案 1 :(得分:1)

试试这个: -

function Renew() {         
    var txtID = document.getElementById('<%=txtInsertSOID.ClientID%>');    
    var ID = getCookie('SOIDTextCookie');
    txtID.value = ID;
 }

答案 2 :(得分:0)

那么你什么时候想运行脚本?全身装完后?在这种情况下,您可以在body OnLoad()甚至jquery document.ready上执行这些操作。这将确保首先加载整个文档。

答案 3 :(得分:0)

在功能中,您可以使用控制存在来检查。

现在你的更新功能

    function Renew()
          {         
              if (document.getElementById("txtInsertSOID") != null)
              {
                var txtID = document.getElementById('<%=dvSOItem.FindControl("txtInsertSOID").ClientID%>');    
                var ID = getCookie('SOIDTextCookie');
                txtID.value = ID;
              }
          }

答案 4 :(得分:0)

试试;)

  function Renew()
  {         
    var txtID = document.getElementById('<%=dvSOItem.FindControl("txtInsertSOID").ClientID%>');   
    if(txtID != null){ 
      var ID = getCookie('SOIDTextCookie');
      txtID.value = ID;
    }
  }