jQuery验证插件清除IE中的文件输入值

Posted

技术标签:

【中文标题】jQuery验证插件清除IE中的文件输入值【英文标题】:jQuery validate plugin clearing file input value in IE 【发布时间】:2010-09-26 02:12:10 【问题描述】:

我目前正在使用这个 jQuery validate 插件,并且在 IE 中遇到了一个问题,即在验证表单的其余部分时它会删除文件输入字段的值。

在我看来,这似乎是一个焦点问题,我选择要上传的文件,单击另一个输入字段并清除该值 - 这也只会发生在文件输入字段上,表单中的任何其他类型的输入都会保留其价值观很好。我一直在玩插件文件,但似乎没有任何改变它清除字段的事实,也查看了谷歌并找不到任何帮助。

我已经在其他浏览器上测试过这个问题,并且值仍然存在,所以它只是在 IE 中。

有没有其他人使用过这个插件并且遇到过同样的问题?

任何帮助都会很棒,谢谢:)

【问题讨论】:

如果您在问题中发布验证规则(以及文件上传字段的名称)可能会有所帮助。 同意 Marc - 发布您的错误的真正简化版本,我们将能够提供帮助。 jQuery.validate 是个炸弹,顺便说一句。 【参考方案1】:

我已经有一段时间没有使用 IE 文件 INPUT 元素了,但我想我仍然记得足够的帮助。

我记得,IE 会清除任何不是由 IE 本身设置的文件 INPUT。我认为他们的逻辑是“文件输入应该只具有用户想要的有效路径,因此如果文件输入是由 javascript 设置的,则假定它是恶意的并清除输入”。

因此,如果您的验证逻辑包含任何类型的 $("INPUT[type='file']").val(something) 类似的东西,那将解释您看到的行为。希望对您有所帮助。

【讨论】:

以上是关于jQuery验证插件清除IE中的文件输入值的主要内容,如果未能解决你的问题,请参考以下文章

使用 IE9、jquery 插件/html 验证的占位符问题

jquery屏蔽输入插件不清除字段?

jQuery 验证插件:验证多个输入文件

jquery datepicker:验证当前输入值?

jQuery插件

使用 jQuery 验证插件验证一些文件输入字段