【问题标题】:posting form with file upload带文件上传的张贴表格
【发布时间】:2011-02-24 13:31:01
【问题描述】:

我在使用 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。

如果我从输入 type=file 元素中删除 name 属性,则不会出现错误,但这不是正确的解决方案。

怎么会这样?

【问题讨论】:

  • 请发布您使用的 JavaScript 代码。另外,提示:避免将 jQuery 用于此类简单的东西;它只会造成更多的混乱和问题。
  • javacript 代码中最重要的部分是:jQuery(form).ajaxSubmit({ target: '#grid .viewport_panel_body'}); } });在这种情况下,我无法避免使用 jquery。

标签: javascript jquery ajax webforms


【解决方案1】:

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

$('#myForm').ajaxForm(function() { //执行你的JS });

我个人不喜欢抽象的 $.get()、$.post() .$ajaxForm() 等,因为它们删除了 $.ajax() 方法的很多功能。

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

// 将处理程序附加到表单的提交事件 $('#myFormId').submit(function() { // 提交表单 $(this).ajaxSubmit({ 成功:函数(结果){回调函数(结果); } ,错误:函数(msg,XMLStatus,err){ errFunction(msg,XMLStatus,err); } }); // 返回 false 以阻止正常的浏览器提交和页面导航 返回假; });

希望这能解决一些问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-26
    • 2011-09-11
    • 2014-03-06
    • 1970-01-01
    • 2013-11-06
    • 2016-01-16
    相关资源
    最近更新 更多