javascript ошибка «объект ожидается» при отображении пользовательского элемента управления - PullRequest
1 голос
/ 12 июля 2010

У меня есть один пользовательский элемент управления, чтобы выбрать дату, которая использует расширитель календаря 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 & "');") "

. Причина, по которой я думаюИдентификатор элемента управления не передается, пока он делает видимым время выполнения. Но работает нормально, если видимость истинна во время загрузки.

, пожалуйста, помогите

благодаря Anto

1 Ответ

2 голосов
/ 12 июля 2010

Нельзя использовать свойство ASP.NET Visible , если вы ссылаетесь на них в JavaScript. Visible = false означает, что элемент управления не отображается на странице, поэтому его нет в DOM для справки.

Использовать CSS:
отображать: нет или видимость: скрыто, чтобы показать / скрыть, и ваш JavaScript будет работать нормально.

СОВЕТ ОТЛАДКИ : Удалите UpdatePanel, когда все становится волосатым, чтобы увидеть, что происходит, затем вставьте его обратно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...