我的单页上有几个表单,我通过这种方法提交它们:
$(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而不是提交的表单。
它完美无缺,当我只提交一个表单时 - 然后它会更改为我的消息div,但是当我提交第二个,下一个和下一个 - 每次我提交的所有表单的消息都刷新。 看起来很糟糕。我想只在实际提交表格时操作。如何解决?
答案 0 :(得分:4)
您正在使用.message
设置每个$('.message').html()
div的消息。试试这个:
upform.find('.message').html(...)
答案 1 :(得分:2)
很难说没看到你的HTML看起来如何,但我猜它是这一点,
$('.message')
应该是这样的,
$('.message', upForm).
答案 2 :(得分: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;
});
});
答案 3 :(得分: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' />");
});