使用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属性,则没有错误,但这不是正确的解决方案。
这怎么可能发生?
答案 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; });
希望这可以解决一些问题。