Кнопка отправки xVal и jQuery

У меня простая форма. У него есть одно поле и кнопка отправки. Я скрываю кнопку отправки. Кнопка отправки фактически запускается с помощью тега привязки, который вызывает метод javascript, который использует jQuery для получения элемента и выполнения click (). Это нормально работает, сообщения формы и запись успешно записываются в БД.

Итак, теперь я добавил xVal для проверки. Я пытаюсь добавить простую проверку на стороне клиента.

Это не работает, когда я нажимаю тег привязки. Однако, если я открою кнопку отправки и попытаюсь опубликовать форму с ней вместо использования тега привязки, вызывающего метод js, это сработает. Итак, в основном я пытаюсь понять, почему это не работает, когда я использую метод js для запуска нажатия кнопки отправки.

Какие-нибудь грандиозные идеи? Большое спасибо!

Вот код ...

<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;
}

person Gabe    schedule 30.11.2009    source источник


Ответы (1)


Что вам нужно сделать, так это запустить проверку jQuery в вашей форме. Пытаться:

$('form').validate();

Чтобы отправить форму после успешной проверки, попробуйте:

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

Обратите внимание, что 'form' должен быть допустимым селектором jQuery для вашей формы ...

person mkedobbs    schedule 30.11.2009
comment
Это действительно помогло. Мне пришлось немного изменить его, но твоя идея в значительной степени верна. Мне пришлось добавить форму (), чтобы заставить ее работать. Вот что я сделал ... function addManufacturer () {var valid = $ (document.forms [0]). Validate (). Form (); если (действительный) {$ ('# btnAdd'). click (); }} - person Gabe; 01.12.2009