1

jquery で助けが必要:

コードのスキーマは次のとおりです。

  1. jquery経由でフォームをphpに送信する
  2. PHPは送信時に別のフォームを送信します
  3. ページを更新せずにフォームを再度送信すると、これが永遠に続きます。

サンプルコード:

$(document).ready(function()
{
    $(".message-submit-button").click(function(){   
        var element = $(this);
        var Id = element.attr("id");
        var messageinput = $("#messageinput"+Id).val();
        var action = $("#action"+Id).val();
        var dataString = 'messageinput='+ messageinput + '&mobilenumber=' + Id + '&action=' + action;

        if(messageinput=='')
        {
            alert("Please Enter Message");
            document.getElementById('messageinput'+Id).focus();
        }
        else
        {
            $("#flash"+Id).show();
            $.ajax({
                type: "POST",
                url: "insert_message.php",
                data: dataString,
                cache: false,
                success: function(html){
                    $("#flash"+Id).hide();
                    $("#message-content"+Id).replaceWith(html); 
                }
            });

        }
        return false;
    });
});

上記のスクリプトでは、出力 "html" は、ID のセットが異なる同じフォームに他ならないことに注意してください。

上記のコードは、最初のフォームでは正常に機能しますが、2 番目のフォームでは機能しません。引き続きフォームの送信にご協力ください。

注: フォームを「insert_message.php」に送信すると、id のセットが異なるが入力とクラス名が同じである別のフォームが div タグで返されます。

4

1 に答える 1

3

ID が異なるだけでフォームが同じ場合は、ID を変更するだけです。フォームを変更する必要がある場合は、イベント ハンドラーを再アタッチするか、委任を使用する必要があります

$(document).on("click", ".message-submit-button", function(){

http://api.jquery.com/on/

jquery 1.7以降を使用していない場合は、代わりにデリゲートを使用できます

$(document).delegate(".message-submit-button", "click", function(){

http://api.jquery.com/delegate/

于 2012-08-09T20:57:28.383 に答える