Почему мои проверки не отображаются? - PullRequest
1 голос
/ 24 ноября 2011

Я использую Asp.Net MVC 3 и добавляю валидатор позже в жизненном цикле через jquery с jquery.validate, используя [этот код] [1]:

Благодаря ответу redsquare я добавил такой метод:

$.validator.addMethod(
        "regex",
        function(value, element, regexp) {
            var check = false;
            var re = new RegExp(regexp);
            return this.optional(element) || re.test(value);
        },
        "Please check your input."
);

Теперь все, что вам нужно сделать, чтобы проверить соответствие любому регулярному выражению, это:

$("Textbox").rules("add", { regex: "^[a-zA-Z'.\s]{1,40}$" })

Проверка работает нормально, но фактическое сообщение нигде не отображается ... что я делаю не так? Спасибо.

Ответы [ 4 ]

4 голосов
/ 01 декабря 2011

У меня была такая же проблема. Я так и не нашел причину проблемы, и в итоге я использовал ненавязчивую проверку MVC, назначив атрибуты проверки моим полям ввода:

при условии, что у вас есть #Textbox input:

<input class="text-box" id="Textbox" name="Textbox" type="text" value="">

Простой способ включить проверку - просто назначить атрибуты data-val- *:

$(document).ready(function(){
   $('#Textbox').attr('data-val','true'); // turn on validation
   $('#Textbox').attr('data-val-regex','The input does not match the validation pattern'); // message to show when validation fails
   $('#Textbox').attr('data-val-regex-pattern',"@^[a-zA-Z&#39;.\s]{1,40}$"); //regex
});

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

1 голос
/ 24 ноября 2011

Вы используете его с метамоделью MVC?Если это так, убедитесь, что у вас есть

@Html.ValidationMessageFor(m => m.obj)

рядом с текстовым полем

Надеюсь, это то, что вы имеете в виду:)

0 голосов
/ 01 декабря 2011

Добавляете ли вы валидатор в динамически добавленный элемент? Если это так, я думаю, вы можете найти свой ответ здесь: jquery.validate.unobtrusive не работает с динамически внедренными элементами

0 голосов
/ 01 декабря 2011

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

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