JavaScript 错误“需要对象”同时使用户控件可见

发布于 2024-09-09 23:14:54 字数 1446 浏览 1 评论 0原文

我有一个用户控件来选择使用 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 没有被传递的原因虽然它使运行时可见,但如果加载期间可见性正确,则工作正常,

谢谢

。 安托

I have one user control to pick the date which utilizes ajax calendar extender. Also it has javascript validation for checking date format. Control is working fine when its visibility is true in loading time. But giving javascript error if i am making it visible with a button (server control) click.

Below is the javascript function to checking the date

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("   } ")

while making visible and onblur it is giving error at
txtDate.Attributes.Add("onblur", "javascript:ValidateDate('" & txtDate.ClientID & "');")"

line. The cause i think control's id is not getting passed while it making visible runtime. But working fine if the visibility is true during the loading.

please help

thanks
Anto

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

寂寞陪衬 2024-09-16 23:14:54

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

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

调试提示:当事情变得棘手时,请删除 UpdatePanel 以查看发生了什么,然后将其放回去。

You can't use ASP.NET Visible property if you are referencing them in JavaScript. Visible=false means the control doesn't not get rendered to the page, therefore its not in the DOM for reference.

Use CSS:
disply:none or visiblity:hidden to show/hide and your JavaScript will work fine.

DEBUG TIP: Remove the UpdatePanel when things get hairy to see whats going on, then put it back.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文