У меня есть форма Ajax в моем приложении MVC, которое проверяется с помощью проверки jquery. Первоначально проверка не работала, потому что поля даты, где в формате Великобритании, а не США (который по дизайну, поскольку я нахожусь в Великобритании), поэтому я добавил некоторый код, чтобы остановить это.Как включить корректную проверку jquery в форме Ajax MVC?
Jquery Validation Дата
$(function() {
$.validator.addMethod("date", function(value, element) {
var dateReg = /^\d{2}([./-])\d{2}\1\d{4}$/;
return value.match(dateReg);
}, "Invalid date");
$('#form').validate({
submitHandler: function(form) {
form.submit();
}
});
});
код я добавил однако угоняет в form.submit, что означает форму АЯКС не вызвать это успех или недостаточность функции.
Ajax форма Код
@using (Ajax.BeginForm("Create", "Fixtures", new AjaxOptions
{
OnSuccess = "Success",
OnFailure = "Failure"
}, new { @class = "standard-form", @Id = "form" }))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
...Form fields etc...
}
Script
function Success() {
console.log("Success")
}
function Failure() {
console.log("Failure")
}
Весь путь это не doens't чувствовать себя чистым для меня, так что мой вопрос, как я проверить форма правильно (с использованием проверки jquery или альтернативы), но также сохранить успешные и неудачные функции моей формы ajax?
Как насчет использования 'DataAnnotations' для проверки модели или просмотра модели и объединения ее с неуверенной проверкой jQuery? – Esen
Ваше регулярное выражение не проверяет дату. Если вы хотите разрешить формат 'dd/MM/yyyy', вы можете посмотреть, используя [jquery globalize] (https://github.com/jquery/globalize), или если вы используете jQuery datepicker, а затем используйте его методы (см. [этот ответ] (http://stackoverflow.com/questions/27285458/jquery-ui-datepicker-and-mvc-view-model-type-datetime/27286969#27286969) для jQuery-ui datepicker). –
В качестве альтернативы вы можете использовать скрипт в [этом ответе] (http://stackoverflow.com/questions/30594128/error-in-date-validation-mvc/30609111#30609111) –