Pergunta

Eu tenho um formulário simples. Sua tem um campo e um botão de envio. Eu me escondo no botão enviar. O botão enviar seja accionado com uma âncora tag que chama um método javascript que usa jQuery para obter o elemento e executar um click (). Isso funciona bem, as mensagens de forma e registro é gravado com sucesso no DB.

Então, agora eu adicionei xVal para validação. Eu estou tentando adicionar na validação do lado do cliente simples.

Ele não funciona quando eu clique na tag âncora. No entanto, se eu un-esconde no botão enviar e tente postar o formulário com que em vez de usar a tag âncora que é chama o método js, ??ela não funciona. Então, basicamente eu estou tentando descobrir por que ele não funciona quando eu uso o método js para acionar o clique do botão enviar.

Todas as ideias Grande? Muito obrigado!

Heres algum 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;
}
Foi útil?

Solução

O que você precisa fazer é acionar a validação jQuery em seu formulário. Tente:

$('form').validate();

Para enviar o formulário Depois da validação, tente:

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

Note que 'forma' deve ser um seletor jQuery válido para a sua forma ...

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top