我的网站上有一个结帐按钮,用于动态加载表单,用户可以在其中填写他/她的个人详细信息。
表单的ID为#order。加载表单后,必须从jquery-form插件调用.submit
函数。
当我第一次做这个时它没有用,所以我把我的最小调试技巧用于(放置警报,我不知道最好的方法;-))。突然,当我在表单加载和.submit
调用之间发出警报时,它会起作用。
我认为在调用.submit
之前,它与表单没有完全加载有关。但经过快速搜索后,我发现.html
函数是同步的,所以任何代码
在html之后肯定会发生.html()调用之后执行
已设定。
有人可以帮我解决这个问题吗?
$('.checkout').live('click', function(event) {
event.preventDefault();
$.get('/gva/templates/gva/form.html', function(data){
$('#blog').html(data);
});
alert('with this alert it works, without it doesn't');
var options = {
target: '#response',
beforeSubmit: validate,
success: showResponse
};
$('#order').submit(function() {
$(this).ajaxSubmit(options);
return false;
});
});
答案 0 :(得分:2)
$('.checkout').live('click', function(event) {
event.preventDefault();
$.get('/gva/templates/gva/form.html', function(data){
$('#blog').html(data);
var options = {
target: '#response',
beforeSubmit: validate,
success: showResponse
};
$('#order').submit(function() {
$(this).ajaxSubmit(options);
return false;
});
});
});
alert
导致延迟,确保在代码的下一位触发时DOM已更新。我把它们放在适当的处理程序中,以便它们在适当的时间点火。