Форум программистов, компьютерный форум, киберфорум
Наши страницы
jQuery
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
KyponaTka
0 / 0 / 0
Регистрация: 19.02.2014
Сообщений: 150
1

2 условия проверки для поля input

31.07.2015, 10:35. Просмотров 606. Ответов 12
Метки нет (Все метки)

Здравствуйте! Подскажите как написать проверку поля, чтобы человек мог вводит только 10 или только 12 цифр?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.07.2015, 10:35
Ответы с готовыми решениями:

Регулярное выражение для проверки поля типа float
Привет, Релиб! Подскажите плз ,какое выражение нужно, чтоб проверить, что в...

Активация кнопки/ссылки после проверки условия
Добрый день. Сайт на joomla, подобных плагинов и модулей не нашел, поэтому...

Написать функцию, для проверки правильности заполнения поля "отчество" в форме
Написать функцию, для проверки правильности заполнения поля "отчество" в форме....

Написать функцию, для проверки правильности заполнения поля "e-mail" в форме
Написать функцию, для проверки правильности заполнения поля "e-mail" в форме....

При вводе текста в input запретить выполнение условия
<div class="last_rub"><input name="last_rub" type="text" id="your_price"...

12
Lazy_Den
2979 / 2641 / 1334
Регистрация: 15.01.2014
Сообщений: 5,798
31.07.2015, 11:08 2
Javascript
1
2
3
4
5
6
7
var re = /^([\d]{10}|[\d]{12})$/,
    v = $('input_selector').val();
if( re.test(v) ) {
    // Допустимое количество цифр 
} else {
    // Не допустимое кол-во или есть другие символы
}
0
KyponaTka
0 / 0 / 0
Регистрация: 19.02.2014
Сообщений: 150
31.07.2015, 11:24  [ТС] 3
Мне вообще нужно чтобы поле проверялось после нажатия кнопки "отправить". При неправильном вводе выводилось "Введите 10 или 12 цифр", а при правильном форма отправлялась. Я просто плохо знаю js правильно ли я дописала, что мне нужно?

Javascript
1
2
3
4
5
6
7
var re = /^([\d]{10}|[\d]{12})$/,
    v = $('input_selector').val();
if( re.test(v) ) {
    return v;
} else {
    $("v").before("<span class=\"error\">Введите 10 или 12 цифр</span>");  
}

и можете подсказать как эту проверку внедрить, если я форму вывожу через ajaxform modx revo, а там уже своя проверка стоит.
0
Lazy_Den
2979 / 2641 / 1334
Регистрация: 15.01.2014
Сообщений: 5,798
31.07.2015, 11:40 4
HTML5
1
2
3
4
<form id="my-form">
    <input type="text" id="my-input">
    <input type="submit">
</form>
Javascript
1
2
3
4
5
6
7
8
$('#my-form').on('submit', function(e){
    var re = /^([\d]{10}|[\d]{12})$/,
        inp = $('#my-input');;
    if( !re.test(inp.val()) ) {
        e.preventDefault();
        inp.before('<span class="error">Введите 10 или 12 цифр</span>');
    }
});
Только учтите, что используя метод .before(), новый span с выводом ошибки, будет добавляться каждый раз при попытке отправки формы с неверным форматом данных в проверяемом поле.

Добавлено через 2 минуты
Цитата Сообщение от KyponaTka Посмотреть сообщение
и можете подсказать как эту проверку внедрить
Расположите код в самом низу страницы перед закрывающим тегом </body> или подключите его в <head>, но тогда обязательно оберните весь код jQuery в DOM-Ready:
Javascript
1
2
3
$(function(){
    // тут весь код jQuery
});
0
KyponaTka
0 / 0 / 0
Регистрация: 19.02.2014
Сообщений: 150
31.07.2015, 11:47  [ТС] 5
все сделала, только проверка почему-то не работает. http://parusdon.com/ "задать вопрос на горячую линию". проверить надо поле ИНН

И что можно использовать вместо .before() ??
0
alexsamos33
619 / 599 / 325
Регистрация: 26.04.2014
Сообщений: 1,970
31.07.2015, 11:58 6
Цитата Сообщение от KyponaTka Посмотреть сообщение
И что можно использовать вместо .before() ??
Можно .html()
HTML5
1
<div id="result"></div>
Javascript
1
$("#result").html("здесь какое-то сообщение");
0
Lazy_Den
2979 / 2641 / 1334
Регистрация: 15.01.2014
Сообщений: 5,798
31.07.2015, 12:05 7
Цитата Сообщение от KyponaTka Посмотреть сообщение
только проверка почему-то не работает
Во-первых, у вас старая версия библиотеки. Подключите 1.9.x или выше. Хотя, если у вас и плагины древние, то они могут не работать. В таком случае, попробуйте изменить :
Javascript
1
2
3
4
// эту часть кода
$('#form_id').on('submit', function(e){
// на эту
$('#form_id').submit(function(e){
Во-вторых, в консоли у вас вылазит ошибка: "validate is not defined". Насколько я могу понять, связано это с этой записью - onsubmit="javascript:return validate('form_id','mail-answer');" и говорит о том, что функция "validate" не определена.
0
KyponaTka
0 / 0 / 0
Регистрация: 19.02.2014
Сообщений: 150
31.07.2015, 12:05  [ТС] 8
А почему проверка не работает? что не так делаю?
0
Lazy_Den
2979 / 2641 / 1334
Регистрация: 15.01.2014
Сообщений: 5,798
31.07.2015, 12:18 9
KyponaTka, в общем, пробуйте этот код:
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
$(function(){
    $('#form_id').submit(function(e){
        var re = /^([\d]{10}|[\d]{12})$/,
            inp = $('#inn');
        if( !re.test(inp.val()) ) {
            e.preventDefault();
            // вывод ошибки
            inp.before('<span class="error">Введите 10 или 12 цифр</span>');
            return false;
        }
    });
});
А с выводом ошибки, вам уже подсказал alexsamos33
0
KyponaTka
0 / 0 / 0
Регистрация: 19.02.2014
Сообщений: 150
31.07.2015, 12:28  [ТС] 10
проверка заработала, только теперь те поля которые проверялись сниппетом перестали делать проверку. это можно как-то поправить?

Добавлено через 7 минут
Все остальные поля проверяются после того как ИНН будет верным. можно это как-то одновременно сделать?
0
Lazy_Den
2979 / 2641 / 1334
Регистрация: 15.01.2014
Сообщений: 5,798
31.07.2015, 12:44 11
Цитата Сообщение от KyponaTka Посмотреть сообщение
только теперь те поля которые проверялись сниппетом перестали делать проверку
Цитата Сообщение от KyponaTka Посмотреть сообщение
я форму вывожу через ajaxform modx revo, а там уже своя проверка стоит.
Что это за "сниппет" и что за "ajaxform modx revo" - я понятия не имею. Проверка остальных полей у вас происходила на сервере, а не на стороне клиента. Ajax-запросом отправлялись данные на сервер и возвращался ответ с массивом "ошибок", относящихся к неправильно заполненным полям.
0
KyponaTka
0 / 0 / 0
Регистрация: 19.02.2014
Сообщений: 150
31.07.2015, 12:49  [ТС] 12
значит код который вы мне предложили не подходит? или вашим методом нужно мне так каждое поле проверять?
0
Lazy_Den
2979 / 2641 / 1334
Регистрация: 15.01.2014
Сообщений: 5,798
31.07.2015, 13:45 13
Цитата Сообщение от KyponaTka Посмотреть сообщение
значит код который вы мне предложили не подходит?
Подходит или не подходит - это должен решить разработчик проекта, т.е. вы. Проверка правильности заполнения полей формы на клиенте - это только для удобства пользователя и чтоб лишний раз не гонять запросы на сервер. Но проверка на сервере должна быть обязательно - это уже чтоб разработчика не мучили ночные кошмары.
Теперь следите за мыслью: до этого, у вас проверка полей на стороне клиента не осуществлялась вообще. Вы добавляете проверку одного поля, но все остальные поля по прежнему проверяются только на сервере.
0
31.07.2015, 13:45
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.07.2015, 13:45

Изменение цвета поля Input при наборе текста (именно при наборе,а не при установке курсора мышки в поле Input)
Добрый день всем! Подскажите пожалуйста код, позволяющий сделать следующие...

Одинаковая ширина для полей input text & input password
Никак не получается выровнять ширину двух тектовых полей: input type='text' и...

Увеличение поля input на 0,5
Есть код для увеличения поля на единицу (1), но он почему то не работает на 0,5...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru