Показать сообщение отдельно
  #19 (permalink)  
Старый 15.10.2016, 20:05
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от K_arina
Мне и нужно не через pattern, а через функции и js. Так ведь можно проверить????
Можно:

<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script> 
$(function() {
    $('#formcheck').submit(function() {
        var err = [], p = [
                            [/[а-яёА-ЯЁ]{2,12}/, 'Ввод имени некорректный'],
                            [/^(?:\+7|8)[\s|-]*[\(]?\d{3}?[\)]?[\s|-]*\d{3}[\s|-]*\d{2}[\s|-]*\d{2}$/, 'Ввод телефона некорректный'], 
                            [/^[a-z0-9_\.\-]+@[a-z0-9_\.\-]+\.[a-z\.]{2,6}$/, 'Ввод электронного адреса некорректный']
                         ];
        $(this).find('input').each(function(i, e) {
            var v = $.trim(e.value);
            if(!v || !(p[i][0]).test(v)) err.push(p[i][1])
        })
        if(err.length) {
            alert(err.join('\n'));
            return false;
        }
    })
});
</script>     
</head> 
<body>
<form id="formcheck">
<input name="name" />
<input name="phone" />
<input name="email" />
<button>GO</button>
</form>
</body> 
</html>


Переменная p может быть объектом, имена свойств которого есть имена полей. Если пустое поле должно иметь собственное сообщение, значит таковое надо описать, ну и т.д., и т.п.

PS. Хотя, если обязательно JQ, то var v = $.trim(e.value); нужно заменить на var v = $(this).val();, а до $(function() { прописать следующее:

$.valHooks.input = {
    get: function(e) {
        return $.trim(e.value)
    }
};

Последний раз редактировалось laimas, 15.10.2016 в 20:32.
Ответить с цитированием