Ошибка JQuery.Validate в Opera

Если вы используете Opera 9.5x, вы можете заметить, что наш клиентский код JQuery.Validate отключен здесь, в Stack Overflow.

function initValidation() {
    if (navigator.userAgent.indexOf("Opera") != -1) return;
    $("#post-text").rules("add", { required: true, minlength: 5 });
}

Это потому, что в Opera генерируется исключение! Конечно, это работает во всех других браузерах, которые мы пробовали. Я начинаю серьезно ненавидеть Opera.

Это своего рода облом, потому что без надлежащей проверки на стороне клиента некоторые из наших запросов не будут выполнены. У нас не было времени ввести полный обмен сообщениями на стороне сервера, когда данные неполные, поэтому вы можете видеть YSOD в Opera гораздо чаще, чем в других браузерах, если вы забудете заполнить все поля в форме.

Любые операторы хотят раскомментировать эти строки (они находятся на основных страницах вопросов и ответов, подобных этой - просто просмотрите исходный код и найдите "Opera") и попробуйте?

Как конвертировать HTML в PDF с помощью jsPDF
Как конвертировать HTML в PDF с помощью jsPDF
В этой статье мы рассмотрим, как конвертировать HTML в PDF с помощью jsPDF. Здесь мы узнаем, как конвертировать HTML в PDF с помощью javascript.
12
0
1 518
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Кажется, я не могу воспроизвести эту ошибку. Вы можете дать более подробную информацию?

У меня есть копия Opera, маскирующаяся под Firefox, поэтому проверка должна выполняться:

>>> $.browser.opera 
false

Когда я перехожу на страницу редактирования профиля и ввожу неверную дату, появляется красный текст с надписью «Пожалуйста, введите действительную дату». Это работает jQuery.Validate, верно? Он не работает только в определенных формах / полях?

Это Opera 9.51 на WinXP.

Edit: тестирование редактирования в Opera.

Обновлено: это также работает, когда я комментирую «if ($ .browser.opera) return;» на копии страницы редактирования профиля, которую я сохранил локально. Я действительно не могу воспроизвести эту ошибку. Каково ваше окружение? (Vista? Плагины Opera?)

Я весь день без проблем использую Stack Overflow с Opera 9.51 на WinXP. Я установил опцию «маска как Firefox», чтобы заставить работать jQuery.Validate. Я также сохранил статические копии страниц редактирования профиля и страниц с вопросами и вручную отредактировал проверки для Opera из скриптов. Во всех случаях проверка формы работала для меня.

Я не пробовал размещать новый вопрос на действующем сайте, но я отредактировал свой профиль и опубликовал эти ответы.

Обычно я не использую Opera, но использую jQuery. Моя копия Opera - это свежая установка, и я использую Windows XP SP3 (когда я вернусь домой, я протестирую на Mac).

Есть ли конкретный вариант использования, который вызывает исключение? Может быть, это ошибка, которая срабатывает только под Vista?

(Немного не по теме, но действительно ли мне следует давать новый ответ, или мне следовало продолжить редактировать свой предыдущий?)

Обновление: работает в Opera 9.51 / PPC Mac под видом Firefox.

Ответ принят как подходящий

оказывается проблема в

{ debug : true }

вариант для инициализатора JQuery.Validate. После его удаления в Opera все работает нормально. Спасибо Йорну Заеффереру за то, что помог нам в этом разобраться!

Да, и 50 долларов будут пожертвованы проекту JQuery. :)

Я не разбираюсь в .NET, но предполагаю, что YSOD подразумевает неперехваченные ошибки, если это так, то не полагаться только на проверку на стороне клиента немного рискованно? Если нет, то обнаруженные ошибки можно преобразовать во что-то полезное для публики Opera - даже если это просто экран смерти, окрашенный в белый цвет с ворчанием проверки ...

Другие вопросы по теме