想上传一个不存在的文件在互联网资源管理器,成为不提交
-
22-08-2019 - |
题
我有一个形式与 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
吞噬按键。