发布带有文件上传的表单

时间:2010-05-27 08:35:33

标签: javascript jquery ajax webforms

使用jquery时上传文件时遇到问题。

我在表单中有以下HTML。

<fieldset>
  <ul>
    <li> 
      <div class="field"><input size="35" type="file"
                             name="formFile" id="formFile"/></div> 
    </li>
    <li> 
      <div class="field"><input size="35" type="text" 
                             name="formFileName" id="formFileName" /></div>
    </li>
  </ul> 
</fieldset>

发布我使用的数据$('#myForm').ajaxForm(

当我发布数据并且收到的数据包含一些javascript时,javascript无法识别。

我希望javscriptcode能够在收到数据时运行,但它很早就会发生。结果表明找不到$或jquery。

如果我从input type = file元素中删除name属性,则没有错误,但这不是正确的解决方案。

这怎么可能发生?

1 个答案:

答案 0 :(得分:1)

您当然需要确保嵌入式JS是回调函数的一部分。

$('#myForm').ajaxForm(function() { 
  //Do your JS execution
}); 

我个人不是抽象的$ .get(),$ .post()。$ ajaxForm()等的粉丝,因为它们删除了$ .ajax()方法的大部分功能。

如果使用ajaxSubmit()方法很重要,它会接受任何其他$ .ajax参数,因此您可能希望async:false并设置成功/错误回调。

// attach handler to form's submit event 
$('#myFormId').submit(function() { 
    // submit the form 
    $(this).ajaxSubmit({
                       success: function(result){ callbackFunction(result); }
                       ,error: function(msg,XMLStatus,err){ errFunction(msg,XMLStatus,err); }
                       }); 
    // return false to prevent normal browser submit and page navigation 
    return false; 
});

希望这可以解决一些问题。