jQuery Validate поле, где атрибут Name содержит квадратные скобки? - PullRequest
3 голосов
/ 13 февраля 2012

Я пытаюсь проверить форму, которая содержит поля с атрибутами имени, содержащими квадратные скобки [].Это требование, что я не могу изменить атрибут name на что-то другое, и это просто кажется беспорядочным, пытаясь проверить с помощью ID или ClassName.

Как мне проверить валидацию w в следующем примере?На данный момент это не работает (делает мою страницу полностью исчезать из-за ошибки.

$("#loginForm").validate({
    rules: {

        login[username]: {
            required: true,
            email: true
        }
    },
    messages: {

        login[username]: {
            required: "Please provide an email",
            email: "Please enter a valid email address"
        }
    }
});

Ответы [ 2 ]

7 голосов
/ 13 февраля 2012

использование login[username] внутри объекта JavaScript не является допустимым синтаксисом. Используйте кавычки, чтобы сделать его действительным "login[username]"

4 голосов
/ 13 февраля 2012

Возможно, вы могли бы сделать что-то подобное вместо этого ...

HTML:

<input type="text" name="login[username]" class="myRule" />

JQuery:

$(document).ready(function() {

    $('.myRule').rules('add', {
        required: true,
        email: true,
        messages: {
            required: "Please provide an email",
            email: "Please enter a valid email address"
        }
    });

});

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

$(document).ready(function() {

    $('input[name=login\\[username\\]]').rules('add', {
        required: true,
        email: true,
        messages: {
            required: "Please provide an email",
            email: "Please enter a valid email address"
        }
    });

});

http://docs.jquery.com/Plugins/Validation/rules

...