2015-10-22 9 views
1

Перед созданием этой функции, когда что-то было некорректным в входах, HTML5 запускал по умолчанию недопустимое действие для браузера (который устанавливал цвет границы ввода в красный и т. Д.). Но теперь, если введенное значение недействительно, оно ничего не делает на событии размытия. Могу ли я вызвать недействительное действие браузера по умолчанию для ввода, если условие if не выполнено?Проверка правильности HTML5 с помощью jQuery

(function ($) { 
    $.fn.isValid = function() { 
     return document.getElementById(this[0].id).checkValidity(); 
    }; 
})(jQuery); 
$(function() { 
    $(".answer").blur(function() { 
     if ($(this).isValid()) { 
      //do something 
     } 
     else 
     //trigger default invalid action 
    }) 
}); 

ответ

0

Javascript/jQuery не требуется. Вы можете использовать псевдо-класс CSS :invalid; это позволяет применить определенный стиль к недопустимым элементам. Точно так же действительные элементы соответствуют: действительному псевдоклассу.

Источник: https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Forms/Data_form_validation

+0

Как я уже сказал, это был запуск, когда не было JS, как я предоставил. Теперь мой JS предотвращает запуск недопустимого состояния – demonoid

+0

«Вы не можете принудительно применить определенный псевдокласс для использования с помощью jQuery» http://stackoverflow.com/a/12741013/1106878 – sbonami

+0

Любопытно, что просмотр размытия останавливается по умолчанию, это не должно быть происходит. Вы не называете 'event.preventDefault' или возвращаете false, не так ли? – sbonami

Смежные вопросы