3

単一のページにいくつかのフォームがあり、次の方法で送信しています。

$(function() {  
    $(".button").click(function() {  

var upform = $(this).closest('.upform'); 

    var txt = $(this).prev(".tekst").val();  

    var dataString = 'tekst='+ txtr;

    $.ajax({  
          type: "POST",  
          url: "http://url-to-submit.com/upload/baza",  
          data: dataString,  
          success: function() {  

            upform.html("<div class='message'></div>");  

            $('.message').html("<h2>FORM SUBMITTED</h2>")  
            .append("<p>THANKS!!</p>")  
            .hide()  
            .fadeIn(1500, function() {  
            $('.message').append("<img src='http://my-images.com/i/check.png' />");  
            });  


          }  
        });  
    return false; 

    });  
  });  

ご覧のとおり、フォームを送信すると、送信されたフォームの代わりにメッセージ div が表示されます。

1つのフォームのみを送信すると完全に機能します-その後、メッセージdivに変更されますが、2番目と次と次を送信すると、既に送信されたフォームのメッセージがすべて更新されるたびに。見た目が悪い。実際にフォームを送信するだけで操作したい。修正方法は?

4

4 に答える 4

4

.messageを使用して、すべての divのメッセージを設定しています$('.message').html()。これを試して:

upform.find('.message').html(...)
于 2012-05-30T07:45:52.870 に答える
2

まず、メッセージ div ( upform.find('.message') )を見つけて、そこに html を追加する必要があります。あなたのコードは

$(function() {  
    $(".button").click(function() {  

var upform = $(this).closest('.upform'); 

    var txt = $(this).prev(".tekst").val();  

    var dataString = 'tekst='+ txtr;

    $.ajax({  
          type: "POST",  
          url: "http://url-to-submit.com/upload/baza",  
          data: dataString,  
          success: function() {  

            upform.html("<div class='message'></div>");  

            upform.find('.message').html("<h2>FORM SUBMITTED</h2>")  
            .append("<p>THANKS!!</p>")  
            .hide()  
            .fadeIn(1500, function() {  
            upform.find('.message').append("<img src='http://my-images.com/i/check.png' />");  
            });  


          }  
        });  
    return false; 

    });  
  });  
于 2012-05-30T07:51:15.397 に答える
2

現在のコードをさらに編集せずに、数行追加するだけの別の方法です。

var msgbox = $("<div class='message'></div>");
upform.html(msgbox);
msgbox.html("<h2>FORM SUBMITTED</h2>")  
.append("<p>THANKS!!</p>")  
.hide()  
.fadeIn(1500, function() {  
  $(this).append("<img src='http://my-images.com/i/check.png' />");  
}); 
于 2012-05-30T07:59:45.507 に答える
2

HTML がどのように見えるかを確認しないとわかりにくいですが、この程度だと思います。

$('.message')

次のようなものでなければなりません、

$('.message', upForm).
于 2012-05-30T07:47:55.407 に答える