标题是我需要的。我发现了一些问题,但没有帮助。
有我的代码
var confirmSave = confirm('Save;');
if(confirmSave){
$('.redirected_form').submit( function() {
$.ajax({
url: $(this).attr('action'),
type: $(this).attr('method'),
data: $(this).serialize(),
succes: function( data ) {
$('#myModal').modal('hide');
},
error: function(){
alert('Something wrong');
}
});
return false;
});
此代码不会保存任何内容
用这个
var confirmSave = confirm('Αποθήκευση ραντεβού;');
if(confirmSave){
document.getElementById("date_form_submit").click();
$('.redirected_form').submit( function() {
$.ajax({
url: $(this).attr('action'),
type: $(this).attr('method'),
data: $(this).serialize(),
success: function( data ) {
$('#myModal').modal('hide');
},
error: function(){
alert('Something wrong');
}
});
return false;
});
已保存数据,但已重定向到PHP页面...
有什么想法吗?
由于
答案 0 :(得分:0)
$("#button").click(function() {
var form = document.getElementById("formid");
formdata2 = new FormData(form);
$.ajax({
url : "php file",
cache : false,
contentType : false,
processData : false,
data : formdata2,
type : "post",
success : function(data) {
}
});
}
});
答案 1 :(得分:0)
$('.redirected_form').on('submit', function(e) {
e.preventDefault();
$.ajax({
url : $(this).attr('action'),
type : $(this).attr('method'),
data : $(this).serialize(),
success : function( data ) {
$('#myModal').modal('hide');
},
error : function(){
alert('Something wrong');
}
});
});
答案 2 :(得分:0)
您需要做的是,在confrim上,触发表单提交。此外,将表单提交为独立块(而不是在确认条件内),如下所示。
var confirmSave = confirm('Αποθήκευση ραντεβού;');
if(confirmSave) {
$('.redirected_form').submit();
}
$('.redirected_form').submit(function(e) {
//e.preventDefault();
$.ajax({
url : $(this).attr('action'),
type : $(this).attr('method'),
data : $(this).serialize(),
success : function( data ) {
$('#myModal').modal('hide');
},
error : function(){
alert('Something wrong');
}
});
return false;
});
答案 3 :(得分:0)
问题在于您是一次以两种方式发布数据。
两种解决方案:
您不必使用表单提交功能。只需在按钮上定义一个单击处理程序(不提交类型)就足够了,它将使用序列化数据执行AJAX调用,而不是重新加载页面。 如果要使用serialize()方法,我建议使用ID属性选择要序列化的表单,并对其执行方法。
你甚至可以调用事件对象的preventDefault()方法(你的代码中没有这个,但它可以在你的提交事件处理程序中接收),因此表单不会以传统方式发布,所以不会发生重装。
但是不推荐第二种方式。由于您使用的是AJAX,因此无需提交表单即可。
答案 4 :(得分:0)
var confirmSave = confirm('Save;');
if(confirmSave)
{
document.getElementById("date_form_submit").click();
}
并使用不同的脚本
jQuery(document).ready(function(){
jQuery('.redirected_form').submit( function() {
$.ajax({
url : $(this).attr('action'),
type : $(this).attr('method'),
data : $(this).serialize(),
success : function( data ) {
$('#myModal').modal('hide');
},
error : function(){
alert('Something wrong');
}
});
return false;
});
});
我对js jQuery很新,我无法解释为什么会这样。
感谢所有人的回答