0

我的代码中有这个 javascript:

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

问题是在页面加载时它总是输入这个 javascripts 并且我的代码会中断,因为“txtInsertSOID”在编辑和查看模式下的命名不同。

我应该怎么做才能防止在页面加载时运行此脚本的程序?请帮忙

4

5 回答 5

2

FindControlnull如果指定的控件不存在,将返回。有关更多信息,请参阅MSDN 文档

<%=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;
    }
}
于 2013-08-19T09:27:29.997 回答
1

试试这个: -

function Renew() {         
    var txtID = document.getElementById('<%=txtInsertSOID.ClientID%>');    
    var ID = getCookie('SOIDTextCookie');
    txtID.value = ID;
 }
于 2013-08-19T09:19:39.370 回答
0

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

于 2013-08-19T09:09:29.863 回答
0

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

所以现在你更新的功能

    function Renew()
          {         
              if (document.getElementById("txtInsertSOID") != null)
              {
                var txtID = document.getElementById('<%=dvSOItem.FindControl("txtInsertSOID").ClientID%>');    
                var ID = getCookie('SOIDTextCookie');
                txtID.value = ID;
              }
          }
于 2013-08-19T09:15:56.333 回答
0

试试看;)

  function Renew()
  {         
    var txtID = document.getElementById('<%=dvSOItem.FindControl("txtInsertSOID").ClientID%>');   
    if(txtID != null){ 
      var ID = getCookie('SOIDTextCookie');
      txtID.value = ID;
    }
  }
于 2013-08-19T09:19:04.047 回答