我的代码中有这个javascript:
function Renew()
{
var txtID = document.getElementById('<%=dvSOItem.FindControl("txtInsertSOID").ClientID%>');
var ID = getCookie('SOIDTextCookie');
txtID.value = ID;
}
事情是,在页面加载时它总是进入这个javascripts而我的代码会中断,因为“txtInsertSOID”在编辑和查看模式下的命名方式不同。
如何防止在页面加载时运行此脚本的程序?请帮忙
答案 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;
}
}