0

内部に 2 つのフォームがあるダイアログ ポップアップ ボックスを作成しようとしています。ポップアップはうまく機能しますが、ダイアログ内には 2 つのフォームがあり、それぞれに個別のアクションがあります。

jQuery Form Plugin を使用してフォームを送信し、#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>

どんな助けでも感謝します。

4

1 に答える 1

1

ここで少し推測していますが、フォームバリデーターのバグかもしれません。

.formFill2submitHandler 関数のパラメーターを取得するために、Validate プラグインがオリジナルの CSS セレクター ( ) を使用している可能性があります。のようなものを使用している場合は、最初に発見された DOM オブジェクト、つまり最初のフォームget(0)が常に返されます。.formFill2

console.logに渡される 'form' パラメータの場合submitHandler、正しいフォームが得られますか?

常に最初のフォームが表示される場合は、次のようなことを試してみてください。

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

$('#emailPDF').validate(submitHandler : submitHandler);
$('#faxPDF').validate(submitHandler : submitHandler);
于 2010-11-08T21:15:41.847 に答える