Цитата OP:
поле сообщает нужное сообщение
Вся эта проблема связана с тем, как IE является запуск события, когда вы делаете выбор. В других браузерах просто выбор новой опции сразу вызывает повторную проверку. Однако в проводнике повторная проверка не запускается до тех пор, пока вы не полностью сосредоточитесь на поле select
.
Обходным путем является ручной захват события change
и повторная валидация силы с использованием метода плагина .valid()
.
$('[name="user"]').on('change', function() {
$(this).valid();
});
DEMO: http://jsfiddle.net/d7apuegL/
Цитата OP:
выпадающий открывается и закрывается автоматически
Это потому, что IE перерисовывает активированный элемент select
каждый раз, когда вы меняете его атрибут title
; и ваша функция errorPlacement
меняет title
всякий раз, когда вы пытаетесь сделать выбор.
Это не идеальный вариант, но единственное обходное решение, похоже, перемещает собственное сообщение об ошибке в атрибут title
select
.
HTML:
<select name="user" id="test" title="error">
JQuery:
errorPlacement: function (error, element) {
// element.attr('title', error.text()); // remove this
element.tipsy('show');
},
DEMO: http://jsfiddle.net/d7apuegL/1/
Пока ваше решение зависит от динамического изменения атрибута title
в то время как select
активирован, у вас всегда будет какая-то форма этой проблемы.Это именно то, как работает IE, поэтому лучше всего полностью нарушить зависимость от атрибута title
или полностью использовать другой всплывающий плагин.
См: How to display messages from jQuery Validate plugin inside of Tooltipster tooltips?
DEMO: http://jsfiddle.net/2012j6dv/
Интеграция подсказке плагин JQuery с помощью плагина JQuery Validate может быть очень сложной задачей, зависит от методов, предоставляемых обоими модулями. Поэтому вам придется приложить гораздо больше усилий, чтобы написать свой вопрос ... например, включить более полную демоверсию вместе с соответствующим HTML и остальную часть того, что находится внутри вашего метода '.validate(). Между тем [взгляните на этот вопрос] (http://stackoverflow.com/a/14741689/594235), чтобы узнать, о чем я говорю. – Sparky
Поскольку jQuery разработан, чтобы нормализовать эти поведения для работы во всех браузерах, включая IE 10/11, вам действительно нужно будет изучить вашу структуру HTML. Я подозреваю, что у вас есть недопустимый HTML, который Explorer не может обработать. – Sparky
@Sparky - код html не сообщает об ошибках (с firebug и консолью IE). Я прочитал сообщение, где кто-то сказал, что «похоже, что IE не нравится атрибут title при выборе». –