0

私はjquery.validate.min.jsスクリプトを使用しており、検証に関する限り、スクリプトは正常に機能しています。

success.php私の問題は、データへの投稿/送信が適切であるということですが、送信が成功した後、実際にページに移動する必要があります。

今のところ、それsuccess.phpは私のメインページからエコーして表示されます。

以下のコードはどうですか?

<script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery.validate/1.7/jquery.validate.min.js"></script>
<script>
$(document).ready(function() {

$("#form1").validate({

    debug: false,
    rules: {
    name: "required",
    email: {
    required: true,
    email: true,
    }
    },
    messages: {
    name: "Please enter your name.",
    email: "Please enter a valid email address.",
    },
    submitHandler: function(form) {

    $.post('success.php', $("#form1").serialize(), function(data) {
    $('#result').html(data);
    });

    }
});

}); 


<form id="form1" action="success.php" method="POST">
    <input name="name" type="text" />
    <input name="email" type="text" />
    <input type="submit" value="submit" />
</form>
</script>

送信が成功した後、どうすれば投稿ページに移動できますか?

4

2 に答える 2

1

あなたのコード:

submitHandler: function(form) {
    $.post('success.php', $("#form1").serialize(), function(data) {
        $('#result').html(data);
    });
}

「今のところ、それsuccess.phpは私のメインページからエコーして表示されます。」

はい、それはまさにjQuery$.post()が機能することになっている方法です。ですajax

submitHandlerからコールバック関数全体を削除するだけ.validate()です。ajaxこの場合、フォームをデフォルトページにリダイレクトするだけの場合は、フォームを送信するために使用しても意味がありません。オプションを削除すると、属性submitHandlerに基づいてリダイレクトされる標準フォームのように動作しますaction

デフォルトでは、プラグインは有効性をテストします。フォームが有効な場合は、他の標準フォームと同様に送信され、の後に続きますaction="success.php"

動作中のデモ:http : //jsfiddle.net/yCePj/

$(document).ready(function () {

    $("#form1").validate({
        debug: false,
        rules: {
            name: "required",
            email: {
                required: true,
                email: true,
            }
        },
        messages: {
            name: "Please enter your name.",
            email: "Please enter a valid email address.",
        }
    });

});
于 2013-03-06T16:32:39.553 に答える
0

これはどうですか?

    <script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery.validate/1.7/jquery.validate.min.js"></script>
<script>
$(document).ready(function() {

$("#form1").validate({

    debug: false,
    rules: {
    name: "required",
    email: {
    required: true,
    email: true,
    }
    },
    messages: {
    name: "Please enter your name.",
    email: "Please enter a valid email address.",
    }
});

}); 

function SubmitIfValid()
{
    if(!$("#form1").valid()) return false;  
    return true;
}

</script>

<form id="form1" action="success.php" method="POST">
    <input name="name" type="text" />
    <input name="email" type="text" />
    <input type="submit" value="submit" onclick="return SubmitIfValid();" />
</form>
于 2013-03-06T16:33:09.253 に答える