JQuery Validator - проверка ввода в список принятых значений

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

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

Ответ 1

Здесь метод проверки, который вы можете добавить для использования с 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" />

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

Ответ 2

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

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

Привет,

Крис