2014-02-16 37 views
1

我有一个表单,将通过ajax请求由ajax生成,当我尝试提交上述表单时,没有发生任何事情。任何想法为什么发生这种情况?提交正在通过ajax调用的表单

由我的逻辑,它应该工作,因为表单不是在我的另一个Ajax函数提交它的同一页面。

反正这里是我的代码:

AJAX将创建形式:

$(".editschool").change(function(){ 
var eschl = $(".editschool").val(); 
$.ajax({url:"update.php", 
data: {schoolid: eschl}, 
type:'post', 
async: false, 
success: function(data){ 
$('#vupdate').html(data); 
$('#vupdate').show(); 
}, 
}); 
}); 

形式:

$form .= '<form class="form-add" id="udata" method="post" role="form" enctype="multipart/form-data">'; 
     $form .= ' 
      <div class="form-group"> 
      <input type="text" class="form-control" id="uschoolname" name="uschoolname" value = "'.$sname.'" placeholder="Name of School"> 
      </div>'; 
     $form .= ' 
      <div class="form-group"> 
      <textarea class="form-control" rows="3" id="uschoolabout" name="uschoolabout" placeholder="About the School">'.$sabout.'</textarea> 
      </div>'; 
     $form .= '<input type="hidden" name="sid" value = "'.$sid.'">'; 
     $form .= ' 
     <div class="form-group"> 
     <label for="exampleInputFile">Upload Syllabus</label> 
     <input type="file" id="ufile" name="ufile"> 
     <p class="help-block">File type: png, jpg, jpeg, gif</p> 
     </div> 
     <button type="submit" class="btn btn-default pull-right">Submit</button>'; 
     $form .= '</form>'; 

其他AJAX将提交表单:

$("#udata").submit(function(){ 
       console.log("test"); 
       var formData1 = new FormData($(this)[0]); 
       $.ajax({ 
        url: "update.php", 
        type: 'POST', 
        data: formData1, 
        async: false, 
        success: function (data) { 
         if(data == "1"){ 
          $("#uschoolname").val(""); 
          $("#uschoolabout").val(""); 
          $("#ufile").val(""); 
         } 
        }, 
        cache: false, 
        contentType: false, 
        processData: false 
       }); 
       return false; 
      }); 

注意我的控制台没有任何错误。

+0

你打电话的形式后的代码,最后一块已被接收? –

+0

这2个ajax脚本在检索表单之前已经被调用,下面的答案做了这个诀窍,虽然我真的可以用一个解释来说明它与.submit – magicianiam

回答

3

你能尝试改变

$("#udata").submit(function(){ 

$(document).on("submit", "#udata", function(){}) 
+0

有什么不同。尽管为什么以及它与.submit函数有什么不同? – magicianiam

+0

只有在加载ajax生成的表单后调用该函数,.submit函数才能正常工作。否则,我们需要使用$(document).on(“submit”) –

+0

我明白了,我现在明白了。谢谢 – magicianiam