2015-04-05 2 views
-2

Я думал, что вся цель jQuery состояла в том, чтобы сделать жизнь разработчика проще, но с тех пор, как я начал изучать, как ее использовать ~ 3 месяца назад это ничего не вызвало кошмары для меня!ASP.NET WebForms и jQuery Validation - validate() undefined

Я сейчас работаю над приложением ASP.NET WebForms и пытаюсь использовать проверку jQuery, поскольку встроенные элементы проверки достоверности не могут быть легко отображены ниже их входных копий. Это все, что я хочу сделать; есть вход с сообщением об ошибке, которое динамически появляется и исчезает под номером, но я ударился головой о кирпичную стену в течение 5 часов, пытаясь понять, как это сделать, казалось бы, невероятно-простой мелочи!

Я начал с пучков <asp:RegularExpressionValidator> и <asp:RequiredFieldValidator> элементов управления (так как вы не можете выполнять обе проверки с одним элементом управления), но не понравилось, как сообщения об ошибках отображаются в строке, справа от моих входов. Поэтому я потратил ~ 2,5 часа, пытаясь сделать ASP.NET рендерингом проклятые вещи с display: block;, но безрезультатно.

Вот, когда я вспомнил коллегу, упомянув плагин jQuery Validation для меня примерно месяц назад ... так что я пытался реализовать с этим решение. Но независимо от того, что я пытаюсь, Google Chrome v.41 в Windows продолжает давать мне ошибку «undefined is not a function» в функции jQuery.validate().

Я знаю, что вы думаете: что-то похожее на строки «ASP.NET управляет идентификаторами управления ... yada yada yada», но я использовал <pages clientIDMode="Static" /> в разделе <system.web> моего web.config с тех пор, как я начал этот проект, так что это не проблема. Я также 99.999% уверен, что я включил необходимые сценарии в правильном порядке, хотя некоторые из них включены в мою главную страницу и некоторые на странице содержания (это не имеет значения, должно ли это?)

Этот пост уже слишком длинный, поэтому посмотрите the full code here.

MTIA всем, кто может сказать мне, что, черт возьми, здесь происходит!

+1

Соответствующий код должен быть включен в вопрос, а не в место, где я скоро исчезнет. Пожалуйста, прочитайте http://stackoverflow.com/help/mcve – AdrianHHH

+0

Как я сказал, что сообщение уже было довольно длинным, а полная страница aspx - ** 546 строк ** ... для справки в будущем, вы действительно хотите, чтобы я включил что-то вроде этого? ??? Сужение его до выдержки, которая показывает, что проблема была невозможна, поскольку ** я не знал, где проблема **, только то, что она ** где-то ** внутри этой страницы. – Kenny83

+0

@AdrianHHH - Я только что прочитал страницу, с которой вы связались, и увидел это предложение: «Разделите и победитете. Когда у вас есть небольшое количество кода, но источник проблемы полностью неясен, начните удалять код понемногу пока проблема не исчезнет - затем добавьте последнюю часть назад ». Вот как мы с Кристиной в конце концов решили проблему, поэтому, я думаю, я должен был сделать это в первую очередь и никогда не публиковал здесь. Мои извинения. – Kenny83

ответ

1

Я отладил ваш код. Проблема заключается в ваших комментариях. Удалите свои комментарии из кода, и он будет работать :)

+0

LMAO, который является сверхъестественным; Я просто обнаружил это сам в то же самое время, когда вы это делали! Но спасибо в любом случае ;-) Не могу поверить, что я потратил целый день $ # @! Ing из-за нескольких глупых комментариев! Я никогда не видел ничего подобного раньше ... почему на Земле есть комментарии в вашем коде, влияющие на JS/JQ в ** любой **, не говоря уже о том, чтобы браузер слепо сказал мне, что функция не определена ... I не понимаю этого ** вообще! ** В любом случае спасибо за ответ и Happy Easter: D – Kenny83

+0

Также мне было бы интересно узнать, как вы отлаживали код ... такой инструмент, безусловно, облегчит мою жизнь в 100 раз! Если я просто ударил F10, F11 или F5 в VS, страница будет работать без остановки ...вы сделали это таким образом с точкой останова в некоторой функции инициализации? Если да, то какая функция? – Kenny83

+0

Для кода Javascript я использую отладчик по умолчанию Google Chrome (Ctrl + Shift + I). Но если у вас есть Internet Explorer, вы можете использовать инструменты разработчика (F12). В визуальной студии вы редактируете код, вставляющий строку 'debugger;', где вы хотите, чтобы отладчик остановился, сохранил и в браузере вы нажали клавишу F5, чтобы обновить, и отладчик должен остановиться там. –