Ручное подключение ненавязчивой проверки JQuery на стороне клиента без аннотаций модели / данных, MVC3 - PullRequest
1 голос
/ 12 июля 2011

После поисков и экспериментов в течение 2 дней я смягчаюсь.Что я хотел бы сделать, это вручную подключить введенный HTML с проверкой JQuery.Я получаю простой строковый массив с сервера и создаю выборку со строками в качестве параметров.Статические поля в форме проверяются нормально.Я пробовал следующее:

var dates = $("<select id='ShiftDate' data-val='true' data-val-required='Please select a date'>");
dates.append("<option value=''>-Select a Date-</option>");
for (var i = 0; i < data.length; i++) {
    dates.append("<option value='" + data[i] + "'>" + data[i] + "</option>");
}
$("fieldset", addShift).append($("<p>").append("<label for='ShiftDate'>Shift Date</label>\r").append(dates).append("<span class='field-validation-valid' data-valmsg-for='ShiftDate' data-valmsg-replace='true'></span>"));

// I tried the code below as well instead of adding the data-val attributes and span manually with no luck
dates.rules("add", {
    required: true,
    messages: {
        required: "Please select a date"
    }
});

// Thought this would do it when I came across several posts but it didn't
$.validator.unobtrusive.parse(dates.closest("form"));

Я знаю, что мог бы создать модель представления, украсить ее обязательным атрибутом, создать серверную часть SelectList и отправить ее, но это скорее "как"я бы сделал эту "ситуацию сейчас.Может кто-нибудь пролить свет на то, почему приведенный выше код не будет работать так, как я ожидаю?

-chad

Ответы [ 3 ]

0 голосов
/ 30 июля 2011

Ваш список выбора в контексте формы?

0 голосов
/ 06 июня 2012
dates.rules("add", {
    required: true,
    messages: {
        required: "Please select a date"
    }
});

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

0 голосов
/ 12 июля 2011

Попробуйте это:

$.validator.unobtrusive.parse('#ShiftDate');

Возможно, вам необходимо указать для прикрепления к форме:

$.validator.parseElement.parse($('#ShiftDate').get(),false);

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