javascript错误“对象预期”,同时使用户控件可见

时间:2010-07-12 14:09:54

标签: asp.net javascript user-controls updatepanel

我有一个用户控件来选择使用ajax日历扩展器的日期。它还具有用于检查日期格式的javascript验证。当加载时间的可见性为真时,控制工作正常。但如果我通过按钮(服务器控件)单击使其可见,则给出javascript错误。

以下是检查日期的javascript函数

txtDate.Attributes.Add("onblur", "javascript:ValidateDate('" & txtDate.ClientID & "');")
objStringBuilder.AppendLine("function ValidateDate(d) ")
objStringBuilder.AppendLine("   {          ")
objStringBuilder.AppendLine("    var t = document.getElementById(d);")
objStringBuilder.AppendLine("    if (t.value.toString() != "")")
objStringBuilder.AppendLine("     {")
objStringBuilder.AppendLine("       if ( isDate(t.value.toString()) == true )")
objStringBuilder.AppendLine("       {")
objStringBuilder.AppendLine("          return true;")
objStringBuilder.AppendLine("       }")
objStringBuilder.AppendLine("       else")
objStringBuilder.AppendLine("       { ")
objStringBuilder.AppendLine("        alert("Please enter valid date in dd/mm/yyyy format");")
objStringBuilder.AppendLine("        t.value = "";")
objStringBuilder.AppendLine("        t.focus();")
objStringBuilder.AppendLine("        return false;")
objStringBuilder.AppendLine("       }")
objStringBuilder.AppendLine("      } ")
objStringBuilder.AppendLine("   } ")

在制作可见和onblur时,它会给出错误 txtDate.Attributes.Add("onblur", "javascript:ValidateDate('" & txtDate.ClientID & "');")

线。我认为控件的id在进行可见运行时没有通过的原因。但如果在加载过程中可见性为真,则工作正常。

请帮助

感谢 安托

1 个答案:

答案 0 :(得分:2)

如果您在JavaScript中引用它们,则无法使用ASP.NET Visible 属性。 Visible = false 表示控件不会呈现给页面,因此它不在DOM中供参考。

使用CSS:
disply:none或visiblity:隐藏显示/隐藏,您的JavaScript将正常工作。

DEBUG TIP :当事情变得毛茸茸的时候删除UpdatePanel以查看最新情况,然后将其放回去。