Mat*_*ick 8 html internet-explorer file input filepath
是否可以阻止用户在IE中输入文件输入文本框?我问的原因是,如果用户输入的文本看起来不像文件系统路径(例如,不是以c:...开头),那么当用户点击提交按钮时,不会发生任何事情.
我要么不允许用户输入框或让表单正常提交.
我发现同样的问题在这里被问到没有答案:http: //www.webmasterworld.com/html/3290988.htm
如果没有其他合适的答案,这个人想出了一个我可以使用的黑客:http: //www.shauninman.com/archive/2007/09/10/styling_file_inputs_with_css_and_the_dom
编辑:澄清 - 如果用户在"浏览"按钮旁边的文本框中键入"不是文件路径"并单击提交,则在IE中不会发生任何事情.表单将不会提交 - 当<input type ="file">框没有真正的文件路径时,IE不允许提交表单.
这个怎么样?您无法键入或右键单击并粘贴.
<input type="file" name="file" onKeyDown="this.blur()" onContextMenu="return false;">
Run Code Online (Sandbox Code Playgroud)
我用另一种方法解决了这个问题,使用按钮而不是提交,并使用 JavaScript 在提交之前检查值。
<input type="file" name="inputFile">
<input type="button" onclick="if(fileHasValidPath()) { submitForm(); }" value="Submit">
function fileHasValidPath() {
if (isIE()) {
var inputFile = document.forms[0].inputFile;
if (inputFile.value != "" && /^(\w:)|(\\)/.test(inputFile.value)) {
alert("File is not a valid file. Please use the Browse button to select a file.");
inputFile.select();
inputFile.focus();
return false;
}
}
return true;
}
function submitForm() {
document.forms[0].submit();
}
Run Code Online (Sandbox Code Playgroud)
我意识到仍然需要对文件进行服务器端验证,但这只是为了防止用户单击“提交”按钮而看不到任何事情发生。此外,它假定 IE 使用 Windows 操作系统。
| 归档时间: |
|
| 查看次数: |
20647 次 |
| 最近记录: |