Удаленный метод валидатора, сопоставляющий значение с массивом JSON - PullRequest
0 голосов
/ 12 августа 2011

Aloha!

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

Рабочий пример этого, без удаленного доступа, здесь: http://jsfiddle.net/sangria/xLGae/

Вероятно, не связано, но эта ошибка появляется в консоли при отправке:

Uncaught Error: NOT_FOUND_ERR: DOM Exception 8

Формат массива JSON:

[94102,94117,94110,99950,...]

jQuery and Validation:

jQuery.validator.addMethod("postalcode", function(postalcode, element) {
    return this.optional(element) || postalcode.match(/^([0-9]{5})$/);
}, "Please specify a valid postal/zip code");

$("#postal").validate({
    rules: {
        zipcode: {
            required: true,
            postalcode: true,
            digits: true,
            minlength: 5,
            maxlength: 5,
            remote: {
                type: 'post',
                contentType: 'application/json; charset=utf-8',
                url: "data/uszipsonly.json",
                dataType: 'json',
                async: false
            }
        }
    },
    messages: {
        zipcode: { remote: "Please specify a US postal code"}
    }
});

Изучил документы и некоторые другие хорошие примеры .Нахожу похожие темы здесь на SO, но все еще несколько сбит с толку этим.

Большое спасибо сообществу за любое просвещение.

1 Ответ

1 голос
/ 12 августа 2011

Если вы используете jquery.bassistance.de, как я думаю, возможно, вы неверно истолковали роль удаленной функции ..

В основном удаленный может возвращать true / false только после отправки значения и являетсяпредназначен в основном для правил, если вы не хотите, чтобы принятое значение хранилось на клиенте, КОГДА-ЛИБО (например, представьте капчу), как здесь http://jquery.bassistance.de/validate/demo/captcha/

Если вы хотите загрузить список возможных ZIPКод вашего приложения принимает (или не принимает) с вашего сервера, я предлагаю сделать следующее:

$.getJSON("data/uszipsonly.json", function(response) {
var validZIP = response;

jQuery.validator.addMethod("postalcode", function(postalcode, element) {
    return this.optional(element) || (postalcode.match(/^([0-9]{5})$/) && $.inArray(postalcode, validZIP));
}, "Please specify a valid postal/zip code");

})

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