Умовне підтвердження JQuery MVC3

Я намагаюся зробити умовну перевірку, використовуючи JQuery-валідатор.

У мене є майстер в javascript, який викликає метод перевірки при переході до наступного кроку:

var validator = $("form").validate();
var anyError = false;

step.find("input").each(function() {
    if (!validator.element(this)) {
       //validate every input
        anyError = true;
    }
});

if (anyError) {
    return false;
}

Все працює добре, коли у мене є [Обов'язковий] атрибут на моделі.

Однак у мене такий сценарій:

  • У мене є випадаюче меню з вибором: Email або Ftp
  • Коли вибрано параметр "Електронна адреса", я хочу показати поле адреси електронної пошти та додати перевірку
  • Коли вибрано параметр Ftp, я не хочу перевірити адресу електронної пошти

Ось фрагмент HTML для адреси електронної пошти.

<div class="email-address" style="display: none;">
   
   @Html.TextBoxFor(m => m.EmailAddress, new { @class = "longtext" })
   <div id="email-validation">
   </div>

I've tried all sorts but the next button validation routine always thinks the form is valid. For example.

$("form").validate({
    errorLabelContainer: '#email-validation',
    rules: {
        EmailAddress: {
           required: true
        }
    },
    messages: {
        EmailAddress: "Please enter an email address"
    }
});

Any help appreciated.

0
Спасибі - спробуйте це
додано Автор Matt, джерело
перевірте цю статтю: blogs.msdn.com/b/simonince/archive/2011/09/29/hellip; У мене була така ж проблема, що випадала, щоб перевірити поле, і ця стаття дійсно корисний
додано Автор Gradile, джерело

2 Відповіді

Я не впевнений, але я впевнений, що ви не можете використовувати стандартну перевірку jQuery спільно з перевіркою на стороні клієнта MVC3. Ви повинні зробити це чи інше.

Щоб бути більш конкретним, перевірка на клієнтській стороні MCV3 пристосовує перевірку jQuery для власного використання, і це суперечить використанню jquery-validation окремо.

0
додано
@archil - Так, я знаю. Я сказав це конкретно. Проблема в тому, що ви не можете писати загальну перевірку jQuery AND використовувати адаптери jQuery MVC на тій же сторінці.
додано Автор Erik Funkenbusch, джерело
@archil - я прочитав кілька людей говорять інакше, наприклад: blog.waynebrantley.com/2011/01/ …
додано Автор Erik Funkenbusch, джерело
Ні, ви помиляєтеся. ASP.NET mvc поставляється з додатковою невеликою бібліотекою, яка посилається на систему перевірки mvc з валідацією jquery
додано Автор archil, джерело
вибачте, але це не так :) Вбудована бібліотека mvc просто викликає методи плагіна jquery-validation. Вони не конфліктують. Ви можете використовувати будь-який спосіб, який вам подобається, з плагіна перевірки JQuery.
додано Автор archil, джерело

Я хотів би використовувати той факт, що входи disabled не беруть участь у перевірці. Додати потрібно для серверної сторони, але просто відключити та приховати EmailAddress, коли вибрано ftp.

0
додано
Привіт, я спробував вимкнути поля, і перевірка ще не виконана. Ось код для виклику валідатора: var validator = $ ("form"). Validate (); var anyError = false; $ step.find ("input") each (function() (if (! validator.element (this)) (anyError = true;))); якщо (anyError) повернути помилково;
додано Автор Matt, джерело
var chat = new Chat();
var chat = new Chat();
642 учасників

Обсуждение вопросов по C# / .NET / .NET Core / .NET Standard / Azure Сообщества-организаторы: — @itkpi — @dncuug