我正在尝试使用jQuery动态创建一个带有<form>
的iframe并在其中形成子<input>
元素。出于某种原因,iframe的load
事件永远不会触发,因此我无法添加<input>
。我错过了什么?
很短:http://jsfiddle.net/LLKej/10/
编辑:我正在尝试检测 iframe 何时加载
答案 0 :(得分:0)
阅读控制台。表格没有加载事件。
答案 1 :(得分:0)
不幸的是,HTML表单没有onload或load事件。除了点击,焦点和更改等典型事件之外,唯一可用的操作是提交和重置。
参考文献: https://developer.mozilla.org/en/DOM/HTMLFormElement#Methods
答案 2 :(得分:0)
load
事件 触发(通过在您的加载事件中放置警报来确认)。但是,您没有正确地将内容附加到iframe
:
$iframe.load(function() {
var $uploadForm = $("<form target='" + iframeName + "' action='" + options.postUrl + "' method='post' enctype='multipart/form-data' />");
$iframe.contents().find("body").append($uploadForm);
$uploadForm.append($("<input type='file' value='" + options.file + "' />"));
if (options.selectFile === true) {
$uploadForm.find("input").click();
}
});
请注意.contents()
来电之前对append
的来电。
此外,我认为不可能以编程方式启动文件输入的浏览功能(由此question确认)。