Frage

Ich habe eine einfache Form. Sein bekam ein Feld und eine Absenden-Button. Ich verstecke die Absenden-Button. Die Schaltfläche Einreichen wird tatsächlich mit einem Anker ausgelöst Tag, das eine Javascript-Methode aufruft, die jQuery zu bekommen das Element verwendet und ausführen ein Klick (). Dies funktioniert gut, die Form Pfosten und Datensatz wird erfolgreich in die DB geschrieben.

So jetzt habe ich hinzugefügt xVal für die Validierung. Ich versuche, in der einfachen Client-Seite Validierung hinzuzufügen.

Es funktioniert nicht, wenn ich den Anker-Tag klicken. Wenn ich jedoch die Absenden-Button un-verstecken und versuchen, mit, dass das Formular veröffentlichen, anstatt den Anker-Tag zu verwenden, die die js Methode sind aufrufen, es funktioniert. Also im Grunde Ich versuche, herauszufinden, warum es nicht funktioniert, wenn ich die js-Methode verwenden, das Klicken der Submit-Button auslösen.

Jede grande Ideen? Dank viel!

Heres einige Code ...

<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;
}
War es hilfreich?

Lösung

Was Sie tun müssen, ist die jQuery Validierung auf dem Formular auslösen. Versuchen Sie:

$('form').validate();

Um das Formular bei erfolgreicher Validierung einreichen, versuchen Sie:

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

Beachten Sie, dass 'Form' soll ein gültiger jQuery-Selektor für Ihre Form sein ...

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top