Jquery Validator - проверить ввод по списку принятых значений - PullRequest
11 голосов
/ 18 апреля 2011

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

В принципе, я хотел бы использовать валидатор Jquery, чтобы проверить, что у пользователя естьввел 1 из 50 действительных сокращений штатов США в поле ввода текста.Если нет, они получат ошибку.Я не могу найти функцию, которая делает это.Любая помощь с благодарностью!

Ответы [ 3 ]

18 голосов
/ 18 апреля 2011

Вот метод проверки, который вы можете добавить для использования с jquery validate

Сначала вы объявляете валидатор:

jQuery.validator.addMethod("isstate", function(value) {
    var states = [
        "AL", "AK", "AZ", "AR", "CA", "CO", "CT", "DE", "FL", "GA",
        "HI", "ID", "IL", "IN", "IA", "KS", "KY", "LA", "ME", "MD",
        "MA", "MI", "MN", "MS", "MO", "MT", "NE", "NV", "NH", "NJ",
        "NM", "NY", "NC", "ND", "OH", "OK", "OR", "PA", "RI", "SC",
        "SD", "TN", "TX", "UT", "VT", "VA", "WA", "WV", "WI", "WY",
        "AS", "DC", "FM", "GU", "MH", "MP", "PR", "PW", "VI"
    ];
    return $.inArray(value.toUpperCase(), states) != -1;
}, "Data provided is not a valid state");

Затем применяете валидатор

$("#myform").validate()

и в вашей форме вы хотите добавить класс к элементу формы для проверки

<input type="text" value="de" class="isstate" />

Вот рабочая демонстрация

1 голос
/ 18 апреля 2011

Вы можете использовать слушатель change () , который просто проверяет ввод по вашему списку допустимых строк ввода и включает кнопки отправки только при наличии совпадения.

В любом случае. Для удобства пользователей лучше показать выпадающий список всех возможных состояний. По крайней мере, это то, о чем я думал в первую очередь, когда я перечитал ваш вопрос.

С уважением,

Крис

0 голосов
/ 18 апреля 2011

Вот грязное быстрое решение:

http://jsfiddle.net/naveed_ahmad/CqXZu/1/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...