Базовый jQuery pop с множественными формами - PullRequest
0 голосов
/ 08 ноября 2010

Я пытаюсь создать диалоговое окно с двумя формами внутри него. Всплывающее окно работает отлично, но внутри диалога у меня есть 2 формы, каждая с отдельными действиями.

Я использую плагин jQuery Form, чтобы отправить мою форму и показать ответ на # showResponse

Проблема, с которой я сталкиваюсь, заключается в том, что когда я нажимаю на любую из форм, она загружает первую форму в #showResponse, и я не совсем уверен, почему ....

Это мой код Javascript

$(".formFill2").validate({
    submitHandler: function (form) {
        $(form).ajaxSubmit({
            target: "#submitResponse",
            success: function (responseText, statusText, xhr, form) {
                $("#submitResponse").show('slow');
                $('#submitResponse').delay(4000).fadeOut('slow');

            },
            error: function (responseText, statusText, xhr, form) {
                alert("Oops... Looks like there has been a problem.");
            }
        });
        return false;
    }
});   

А это мой HTML внутри моего диалогового окна.

<fieldset><legend>Email this PDF to</legend>
                  <form class="formFill2" name="emailPDF" id="emailPDF" action="classes/class.Post.php?a=notifyForm" method="post">
                    <label for="email1">Email 1</label>
                    <input name="email1" type="text" value="<?php echo $_SESSION['myEmail']; ?>"><br />

                    <input type="submit" value="Send Emails">
                  </form>    
                  </fieldset>

                  <fieldset><legend>Fax this PDF to</legend>
                  <form class="formFill2" name="faxPDF" id="faxPDF" action="classes/class.Post.php?a=faxFile" method="post">
                    <label for="faxNumber">Fax #</label>
                    <input name="faxNumber" type="text" ><br />

                    <input type="submit" value="Send Fax">
                  </form>    
                  </fieldset>

Любая помощь будет благодарна.

1 Ответ

1 голос
/ 09 ноября 2010

Я немного размышляю здесь, но это может быть ошибка в валидаторе формы.

Возможно, плагин Validate использует ваш оригинальный селектор CSS (.formFill2) для того, чтобыполучить параметр для функции submitHandler.Если они используют что-то вроде get(0), то он всегда будет возвращать первый объект DOM, обнаруженный .formFill2 - первой формой.

Если вы console.log параметр 'form', которыйпередается в submitHandler, вы получаете правильную форму?

Если она всегда дает вам первую форму, вы можете попробовать что-то вроде следующего:

var submitHandler = function(form) {
    //Your submitHandler...
}

$('#emailPDF').validate(submitHandler : submitHandler);
$('#faxPDF').validate(submitHandler : submitHandler);
...