我有一个形式与 input type=file.互联网资源管理器,用户可以输入任何东西他们想要进入,输入(而Firefox带来了一个文件选择).如果用户进入公然无效的名称,例如:

a

并尝试提交的形式,互联网资源管理器,甚至没有尝试的提交形式。

是否有任何办法,我知道,这已经发生,并让用户知道这是发生在一个警告?

有帮助吗?

解决方案 2

我发现了一个更好的方式来做到这一点:http://www.priddypictures.co.uk/reference/fileInputProblem.htm

因此,如果这些男生/女生是正确的,并且形成提交罚款,如果输入不具有名称的属性,则:

  • 写一个jQuery插件,将(如互联网浏览器)删除名称从属性的所有文件输入
  • 插入另一个隐藏的投入的形式用正确的名称
  • 复制的价值从文件输入到隐藏的入

我可能会写这个插件在某一点。

其他提示

您应该添加一个“点击()”事件提交按钮它调用的JavaScript函数测试你的病情,并使用JavaScript的“警告”,让用户知道他们需要输入的东西值得提交的

查找到正则表达式为你的测试。

如果你希望用户做出决定,使用confirm()

如果你想简单地提醒他们,而不是测试他们的价值,你可以使用这样的:

<input type="submit" value="clickme" onClick="if (confirm('Really submit?')) { this.form.submit(); }">

下面是一些示例代码,将让你的onclick()内从一个JavaScript函数调用的值:

<html>
    <head>
        <title>hello world</title>
        <SCRIPT LANGUAGE="javascript" type="text/javascript">
            function show_me(form_elem) {
            alert(form_elem.value);
            }
        </script>
    </head>
    <body>
        <form method="GET" name="upload_form" action="index.html" target="_top">
            <input type="file" name="file_name" size="14" maxlength="256" value="">
            <br>
            <input type="submit" value="mybutton" onclick="show_me(this.form.file_name)" />
        </form>
    </body>
</html>

您可以模仿与下面的Firefox的行为:

<input type="file" name="test" onkeypress="this.click();return false;">

当用户试图在文件输入到输入时,它弹出文件选择器。

显然,如果客户端禁用JavaScript这是不行的,但根据您的需求,它可能是“足够好”。

显示于IE 6,7和8的工作正常。

有在Firefox 3工作好(因为它不允许在<input type=file>打字)。

它的工作原理没关系在Safari的Windows 3&4(因为它不允许键入一个<input type=file>)。

在Opera 9中(它允许键入在<input type=file>)它不会做任何事情(不弹出选择者或吞下按键)。该onkeypress事件似乎并没有开火所有实际,可能是安全性。

在Firefox 2中它不工作(它允许键入在<input type=file>),因为this.click()不弹出的选择器和return false吞噬按键。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top