Pregunta

Tengo una forma simple. Tiene un campo y un botón de enviar. Oculto el botón de enviar. El botón de envío se activa realmente con un ancla etiqueta que llama a un método javascript que usa jQuery para obtener el elemento y ejecutar Un clic (). Esto funciona bien, las publicaciones y el registro del formulario se escriben correctamente en la base de datos.

Entonces ahora agregué xVal para la validación. Estoy tratando de agregar la validación simple del lado del cliente.

No funciona cuando hago clic en la etiqueta de anclaje. Sin embargo, si des-oculto el botón Enviar e intento publicar el formulario con eso en lugar de usar la etiqueta de ancla que se llama método js, ??funciona. Básicamente, estoy tratando de descubrir por qué no funciona cuando uso el método js para activar el clic del botón Enviar.

¿Alguna idea grandiosa? ¡Muchas gracias!

Aquí hay un código ...

<div id="manufacturerButtons" class="moduleRow">
            <%= Html.ActionImage(Url.Content("~/Content/Icons/bullet_go_back.png"), "Back To Admin", "Admin", "Admin")%>
            | <a class="actionImage" href="javascript: addManufacturer();">
                <img border="0" src="<%= Url.Content("~/Content/Icons/accept.png")%>">&nbsp;<span>Add
                    Manufacturer </span></a>
        </div>
        <div class="moduleContent">
            <div id="manufacturerContainer">
                <div class="moduleRow">
                    <h3>
                        New Manufacturer</h3>
                </div>
                <div class="moduleRow">
                    <% Html.BeginForm("NewManufacturer", "Admin", FormMethod.Post); %>
                    <table class="noBorder" border="0" cellpadding="0" cellspacing="0">
                        <tr>
                            <td style="width: 125px">
                               <h6>Name:</h6>
                            </td>
                            <td>
                                <%= Html.TextBox("Name") %>
                            </td>
                        </tr>
                        <tr style="display: none;">
                            <td>
                                &nbsp;
                            </td>
                            <td>
                                <input type="submit" id="btnAdd" name="btnAdd" />
                            </td>
                        </tr>
                    </table>
                    <% Html.EndForm(); %>
                    <%= Html.ClientSideValidation<EquipmentManufacturer>() %>
                </div>

            </div>

Javascript:

function addManufacturer() {
    //$('form').submit(); // doesnt work when trying to validate either
    $('#btnAdd').click();
    return true;
}
¿Fue útil?

Solución

Lo que debe hacer es activar la validación de jQuery en su formulario. Prueba:

$('form').validate();

Para enviar el formulario luego de una validación exitosa, intente:

$('form').validate({ submitHandler: function(form) { form.submit(); } });

Tenga en cuenta que 'form' debería ser un selector jQuery válido para su formulario ...

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top