我无法提交表单,因为jquery中的.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()函数中,有一个upload()函数,它将具有.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);
});
});
});
}
}
有人可以帮我找到我的错误,为什么我无法提交我的表格。谢谢
答案 0 :(得分:0)
最近遇到过类似的事情。我不认为它应该重要,可能是一个错误,但尝试
data: $("#repmsg").serialize()
而不是
data = new FormData($("#repmsg")[0]);