validar validacion vacios pattern formulario campos javascript jquery asp.net-mvc validation unobtrusive-validation

javascript - validacion - validar formulario jquery



Las validaciones de campo requeridas no funcionan en JQuery Popup MVC 4 (1)

Tengo ventanas emergentes de JQuery y quiero ponerle las validaciones de campo requeridas y para esto he establecido los atributos requeridos en el modelo y también he establecido el mensaje de validación para ellos en la vista, pero las validaciones de campo requeridas no funcionan en las ventanas emergentes. La validación de campo requerida funciona bien en formularios que no sean JQuery Popups ... Por favor, guíame sobre qué debo hacer para abordar este problema ... A continuación está mi código.

Modelo

[Display(Name = "Material Code")] [Required(ErrorMessage = "*")] public string MaterialCode { get; set; }

Ver

<li> @Html.LabelFor(m => m.MaterialCode) @Html.TextBoxFor(m => m.MaterialCode) @Html.HiddenFor(m => m.MaterialCodeId) </li>

y el siguiente es mi código para abrir una ventana emergente de JQuery.

$(''#btnAddCharge'').on(''click'', function (event) { event.preventDefault(); var actionURL = ''@Url.Action("Edit", "Charges", new { Id = 0, @ticketId = @TicketId, UserId = UserId })''; $(dialogBox).dialog({ autoOpen: false, resizable: false, title: ''Edit'', modal: true, show: "blind", width: ''auto'', hide: "blind", open: function (event, ui) { $(this).load(actionURL, function (html) { $(''form'', html).submit(function () { $.ajax({ url: this.action, type: this.method, data: $(this).serialize(), success: function (res) { if (res.success) { $(dialogBox).dialog(''close''); } } }); return false; }); }); } }); $(dialogBox).dialog(''open''); });


El validador se analiza cuando la página se carga inicialmente. Cuando agrega contenido dinámico, necesita volver a rastrear el validador. Modifique su secuencia de comandos para incluir las siguientes líneas después de cargar el contenido

$(this).load(actionURL, function (html) { // Reparse the validator var form = $(''form''); form.data(''validator'', null); $.validator.unobtrusive.parse(form); $(''form'', html).submit(function () { ....

Nota al @Html.ValidationMessageFor(m => m.MaterialCode) : el código que ha mostrado no incluye @Html.ValidationMessageFor(m => m.MaterialCode) pero supongo que esto está incluido.