我有一个用户控件来选择使用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在进行可见运行时没有通过的原因。但如果在加载过程中可见性为真,则工作正常。
请帮助
感谢 安托
答案 0 :(得分:2)
如果您在JavaScript中引用它们,则无法使用ASP.NET Visible 属性。 Visible = false 表示控件不会呈现给页面,因此它不在DOM中供参考。
使用CSS:
disply:none或visiblity:隐藏显示/隐藏,您的JavaScript将正常工作。
DEBUG TIP :当事情变得毛茸茸的时候删除UpdatePanel以查看最新情况,然后将其放回去。