2015-01-13 45 views
0

我无法提交表单,因为.query()在jquery中没有被解雇。谁能帮我?这里是我的代码的一部分...('form')。submit()没有启动

<form id="repmsg" class="remember" method="post" action="test.php" enctype="multipart/form-data"> 
<input type="file" name="filepj" id="message_file" class="message_file f_left" style="float: left;"/> 
<input type="submit" style="display: none" name="pj" id="pj1"> 
</form> 
<a onclick="sendMessage(<?php echo $mId; ?>);" href="javascript:;" class="envoyer_reponse f_right"><?php echo $translate->translate('send'); ?><span><span></span></span></a> 
     <a onclick="cancelMessage(<?php echo $mId; ?>);" href="javascript:;" class="annuler_reponse f_right"><?php echo $translate->translate('wish_popup_annuler'); ?></a> 

当我点击链接sendMessage时,jquery函数被激发。这里是的sendMessage()函数

function sendMessage(id) { 

var mId = id; 

if($('#msg_txt_'+id).val() != '') { 

    var message_file = $('#message_file').val(); 

    uploads(); 

    $.ajax({ 
     type: 'post', 
     data: { mId: id, type: 1, message: $("#msg_txt_"+id).val(), act:"rep", msg_file : message_file}, 
     url: path_relative_root+'message-detail.php', 
     success: function(response){ 

      if(response == '1') { 
       $('#msg_conf_'+mId).html(message_send); 
       $('#msg_conf_'+mId).show(); 
      } 
      else { 
       $('#msg_conf_'+mId).html(message_fail); 
       $('#msg_conf_'+mId).show(); 
      } 

     } 
    }); 

} 
else 

    $('#msg_conf_'+mId).hide(); 

} 

从这个的sendMessage()函数,有这将对.submit()

function uploads(){ 

var message_file = $('#message_file').val(); 

console.log(message_file); 

if(message_file != ''){ 

    console.log('test'); 

    $(document).ready(function() { 

     $("#repmsg").submit(function(e) { 
      e.preventDefault(); 
      data = new FormData($("#repmsg")[0]); 

      console.log('Submitting'); 

      alert('hello'); 
      $.ajax({ 
       type: 'POST', 
       url: path_relative_root + 'message-detail.php', 
       data: data, 
       cache: false, 
       contentType: false, 
       processData: false 
      }).done(function (data) { 
       console.log(data); 
      }).fail(function (jqXHR, status, errorThrown) { 
       console.log(errorThrown); 
       console.log(jqXHR.responseText); 
       console.log(jqXHR.status); 
      }); 

     }); 
    }); 
} 

} 

是否有人可以帮助我找到一个上传()函数我错误,为什么我不能提交我的表格。谢谢

+2

因为'e.preventDefault'的? – vaso123

+1

你从哪里调用'uploads()'? –

+0

我应该删除e.preventDefault吗? lolka_bolka –

回答

0

最近碰到类似的东西。我不认为它应该的问题,可能是一个错误,但尝试的

data: $("#repmsg").serialize()

代替

data = new FormData($("#repmsg")[0]);

+0

在更改为'data:$(“#repmsg”)之后仍然不工作。serialize()'@Marcell Fulop –