单击提交清除文件字段而不是提交表单(IE9)

Posted

技术标签:

【中文标题】单击提交清除文件字段而不是提交表单(IE9)【英文标题】:Clicking submit clears file field instead of submitting the form (IE9) 【发布时间】:2011-11-22 17:09:44 【问题描述】:

我遇到了一个奇怪的错误,希望大家帮忙解决。

有时当用户尝试提交表单时,文件上传字段image 会被清除,但没有任何反应。我似乎根本没有提交表单。

然后一切正常后的第二天。错误发生在随机日期/时间。

首先我认为这是用户计算机的问题,但这种情况发生在客户拥有的两台不同的计算机上。其中一台计算机装有 Windows 7 Professional 和 Internet Explorer 9。另一台我没有设置。

我在 windows 7 home 上尝试过使用 Google Chrome、Firefox 6.0.2、Internet Explorer 9、8(浏览器兼容模式)、7(浏览器兼容模式),在我的计算机上完全没有问题。

这是表格:

<form action="/user/image" method="post" accept-charset="utf-8" class="form_default" enctype="multipart/form-data">
    <fieldset>
        <ol>
            <li>
                <button type="submit" name="save" value="submit" class="button">Save</button>
            </li>
            <li>
                <label for="image">Profile image</label><input type="file" id="image" name="image" />
            </li>
            <li>
                <button type="submit" name="save" value="submit" class="button">Save</button>
            </li>
        </ol>
    </fieldset>
</form>

【问题讨论】:

尝试为我提交表单.. 我没有脚本可以在 /user/image 处接受表单,但它是 404 的 您找到解决此错误的方法了吗?我正在经历完全相同的事情...... 只是出于好奇 - 如果您使用 代替,此错误是否仍然存在? 不确定 Cudos,但就我而言,我已经在使用 提交文件上传表单 另外,emphaticsunshine,唯一发生这种情况的浏览器是 IE,所以我想我会为此责怪 IE。 :P 【参考方案1】:

每个form 应该只有 1 个submit button。 所以保留 1 个保存按钮为 type="submit" ,将另一个更改为 type="button"

【讨论】:

【参考方案2】:

尝试使用输入而不是按钮,祝你好运!

<input type="submit" name="mysubmit" value="Click!" />

【讨论】:

【参考方案3】:

你应该使用:

<input type="button" onclick="customFunction" />

在customFunction(javascript)中写下你想做的事情

【讨论】:

【参考方案4】:

对此没有聪明的解决方法,IE9 不允许通过 JavaScript 篡改文件,这可能是出于安全原因。

【讨论】:

【参考方案5】:

首先,请让我们看看您发送此表单的 php 编码...... 通常诸如此类的表单提交错误具有服务器端编码错误.. 也许你应该检查一下你的 PHP 编码,看看你的

 $_POST['save'] 

面积....

希望这会有所帮助... :)

【讨论】:

发帖人在表单提交之前非常清楚地表明了问题。事实上,他们说表单似乎根本没有提交。我也有同样的问题,而且肯定是客户端的问题。

以上是关于单击提交清除文件字段而不是提交表单(IE9)的主要内容,如果未能解决你的问题,请参考以下文章

提交表单 ASP.NET 时清除所有输入字段

每次单击按钮时都在提交表单

在 PHP 中提交表单时如何保留输入字段中的值?

防止表单提交字段输入键keydown? [复制]

在 React 中提交表单后无法清除输入字段

提交表单后,Django 清除表单字段。在 forms.py 中创建表单