我有一个名为myfile
的HTML5输入文件。在同一个文件中,我在JavaScript的一部分中使用$("#myfile").click();
。 $("#myfile").click();
导致出现文件对话框。这是按预期工作的,但我想知道:
记录在哪里(如果您发出$("#myfile").click();
之类的声明,则会出现一个对话框),
如果我将参数发送到.click()
函数,是否有显示对话框的替代方法?
答案 0 :(得分:2)
HTMLElement.click()方法模拟鼠标单击元素
https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement.click
HTML 5规范声明 -
element.click()就像点击了元素一样。
click()方法必须执行以下步骤:
如果元素是禁用的表单控件,则中止这些步骤。
在元素上运行合成点击激活步骤。
行为本身将取决于元素点击,用户代理(浏览器)对该元素类型的点击的默认行为(通常没有,除了输入类型)和开发人员添加的任何自定义事件对于元素。
模拟点击事件 -
var domElement = document.getElementById(elementId);
if (domElement && typeof(domElement.click) === "function")
{
domElement.click();
}
有关不同元素如何响应的一些示例(以及您甚至可以通过模拟点击事件触发点击事件处理程序),请参阅http://jsfiddle.net/pwdst/KGgXq/以获取一些示例。
在回答有关文件输入的具体要点/问题时,HTML 5 specification for the element会说明"激活行为"对于类型为" file"的输入元素。这包括 -
向用户显示请求用户指定某个提示的提示 文件。如果未设置multiple属性,则必须不再有 选择一个文件;否则,可以选择任何数字。档 可以来自文件系统或动态创建,例如拍的照片 来自连接到用户设备的相机。
规范声明只有在元素未被禁用或只读时才会发生这种情况。