Я работаю с ненавязчивой проверкой полей формы ASP.NET MVC 5 и jQuery.
У меня правильно настроен параметр web.config.
Если я не заполняюв обязательном поле я не могу отправить форму, и курсор установлен на пустое поле.
Однако сообщение об ошибке не отображается.
Бритва:
<div class="d-1of2 t-1of2 m-all">
@Html.LabelFor(m => m.FirstName)
@Html.MaxLengthTextBoxFor(m => m.FirstName, new { @class = "alphaonly" })
@Html.ValidationMessageFor(m => m.FirstName)
</div>
Модель:
[Required]
[Display(Name = "First Name")]
[StringLength(100)]
public string FirstName { get; set; }
Разметка (из «Просмотр исходного кода страницы»):
<div class="d-1of2 t-1of2 m-all">
<label for="FirstName">First Name</label>
<input class="alphaonly" data-val="true" data-val-length="The field First Name must be a string with a maximum length of 100." data-val-length-max="100" data-val-required="The First Name field is required." id="FirstName" maxlength="100" name="FirstName" type="text" value="" />
<span class="field-validation-valid" data-valmsg-for="FirstName" data-valmsg-replace="true"></span>
</div>
Итак, похоже, что ненавязчивый материал все готово для работы.
Когда я отлаживаю файл jquery.validate.unobtrusive.js, проблема заключается в этой функции:
function onError(error, inputElement) { // 'this' is the form element
var container = $(this).find("[data-valmsg-for='" + escapeAttributeValue(inputElement[0].name) + "']"),
replaceAttrValue = container.attr("data-valmsg-replace"),
replace = replaceAttrValue ? $.parseJSON(replaceAttrValue) !== false : null;
container.removeClass("field-validation-valid").addClass("field-validation-error");
error.data("unobtrusiveContainer", container);
if (replace) {
container.empty();
error.removeClass("input-validation-error").appendTo(container);
}
else {
error.hide();
}
}
Переменная "replaceAttrValue" имеет значение "undefined", поскольку container.attr ("data-valmsg-replace ") является неопределенным.Но этот элемент и этот атрибут данных, по-видимому, присутствуют.
Кто-нибудь видел это раньше?Я явно что-то упускаю, но что?