Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在应用窗体函数之前等待窗体加载?_Javascript_Jquery_Forms_Load - Fatal编程技术网

Javascript 如何在应用窗体函数之前等待窗体加载?

Javascript 如何在应用窗体函数之前等待窗体加载?,javascript,jquery,forms,load,Javascript,Jquery,Forms,Load,我在我的网站上有一个签出按钮,它可以动态加载表单,用户可以在其中填写他/她的个人详细信息。 表单的id为#order。加载表单后,它必须从插件调用.submit函数 当我第一次这样做时,它不起作用,所以我使用了我的最低调试技巧(放置警报,我不知道最好的方法;-)。当我在加载表单和.submit调用之间发出警报时,它突然起作用了 我想这与调用.submit之前表单没有完全加载有关。但是在快速搜索之后,我发现.html函数是同步的,所以任何代码都是同步的 在.html()调用之后执行肯定会在html

我在我的网站上有一个签出按钮,它可以动态加载表单,用户可以在其中填写他/她的个人详细信息。 表单的id为#order。加载表单后,它必须从插件调用
.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; 
  });
});
警报
导致延迟,确保在您的下一个代码位触发时DOM已被更新。我已经把它们放在合适的处理器里,以便它们在合适的时间开火

$('.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; 
    });
  });
});