在提交之前更改表单的值

时间:2011-09-01 04:46:19

标签: jquery

我有一个功能,从提交#uploadform表格enctype="multipart/form-data"开始。问题在于,当提交此表单时,我运行另一个函数,该函数向文档发送post请求并接收信息。我希望使用初始表单#uploadform提交此信息,但似乎此表单调用在表单提交后发生,因此值不会被添加。 #progress_key已成功添加到表单中,因为它在post调用之前发生。任何人对此都有任何想法吗?

$('#uploadform').submit(function(){

beginUpload();

}


function beginUpload() {
$('#progress_key').val(rand_id);

$.ajax({
type: "POST",
url: "progressbar/initial.php",
data: 'data,
dataType: 'json',
success: function(response, statusText) {

if(response.error == '') {  

vid_id=response.vid_id;
file_name=response.file_name;

$('#file_name').val(vid_id);
$('#vid_id').val(file_name);
}
}
});
}

1 个答案:

答案 0 :(得分:3)

要做到这一点,并避免发出同步ajax请求,你可以从提交处理程序返回false,如下所示:

$('#uploadform').submit(function(){
    beginUpload();
    $(this).unbind('submit');
    return false;
}

然后在你的ajax调用的成功函数结束时提交它:

$('#uploadform').submit();