【发布时间】:2013-12-22 00:50:27
【问题描述】:
好的,我正在通过 ajax 调用将表单加载到页面中,如下所示:
$('.ajax_click').on('click', function(event) {
event.preventDefault();
/* Act on the event */
var getmsgtoload = $(this).find('.ajax_get_msg').attr('href');
var getpelytoload = $(this).find('.ajax_get_reply').attr('href');
//get reply
$.ajax({
url: getpelytoload,
}).done(function(data) {
var getreply = $(data).find('#reply_div').html();
$('#reply_div').replaceWith('<div id="reply_div">'+getreply+'</div>');
//Process our send!
$('#create').submit(function() { // catch the form's submit event
$.ajax({ // create an AJAX call...
data: $(this).serialize(), // get the form data
type: $(this).attr('method'), // GET or POST
url: $(this).attr('action'), // the file to call
})
.done(function(data){ // the file to call
console.log(data);
$('#created').html('<h1>Success</h1>'); // update the DIV
})
.fail(function(){
console.log('error on the from....');
});
return false; // cancel original event to prevent form submitting
});
})
.fail(function() {
console.log("error");
})
.always(function() {
console.log("complete");
});
});
我也尝试通过 ajax 从表单发送数据,但 data 参数只返回整个页面而不仅仅是表单。 为什么? 克里斯 澄清 该表单根本不会“发布”数据,但它确实在我从中拉出表单的页面上工作,如下所示: 我在 ajax 的回调成功函数中使用从页面 A 到页面 B 的 ajax 调用将表单调用到 DIV A 然后我运行 ajax 以通过序列化发送表单数据,但在查看表单时它不会发送在页面 A 上它工作正常,但当它被拉入页面 B 时就不行了! 克里斯
【问题讨论】:
-
$(this).serialize()输出什么?当我通过 ajax 从表单提交数据时,我通常最终会获取每个字段值并为每个字段设置一个变量。 -
这个序列化在嵌套的 ajax 输出数据之前很好。成功的数据输出整个页面...
-
@MickeySlater 确实在一定程度上有所帮助,但我已经将处理程序绑定到第一个 ajax 的成功函数上......
标签: javascript jquery ajax