作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我正在用 javascript 创建一个上传控件,然后使用 element.click()
打开文件浏览器对话框。
function add(type) {
var element = document.createElement("input");
element.setAttribute("type", type);
element.setAttribute("value", type);
element.setAttribute("name", type);
element.setAttribute("id", "element-" + i);
var removebutton = document.createElement('a');
var removeimage = document.createElement('img');
removeimage.setAttribute("width", 15);
removeimage.setAttribute("height", 15);
removeimage.setAttribute("class", "removebutton");
removeimage.src = "/Content/Images/redx.png";
removebutton.appendChild(removeimage);
removebutton.setAttribute("id", "remove-" + i);
removebutton.setAttribute("onclick", "remove(" + i + "); return 0;");
var newfile = document.getElementById("uploadhere");
//newfile.appendChild(removebutton);
newfile.appendChild(element);
newfile.appendChild(removebutton);
element.click();
i++;
}
文件浏览器对话框按预期出现,但在我选择表单上的提交后,输入到控件中的所有文件都消失了。
如果我单击“浏览”,我会看到文件浏览器对话框,但文件会正确上传。
如何将文件上传控件添加到我的表单并让它显示文件浏览器对话框并且仍然按预期工作。
最佳答案
"file"输入类型必须包含属性:
enctype="multipart/form-data"
指定post方法时。看到这个:http://www.w3.org/TR/html4/interact/forms.html#edef-FORM
在这种情况下可能还有其他限制,根据您的问题,听起来您可能正在尝试在 AJAX 调用中进行上传。看看这里的答案:https://stackoverflow.com/questions/3686917/post-to-php-with-enctype-multipart-form-data
如果您使用的是 jQuery,则无法从您的代码中确定,但如果您尝试过隐藏输入表单并使用 clone()根据需要创建另一个?
关于Javascript 和文件上传无法按预期使用 click(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8823747/
我有以下正则表达式 /[a-zA-Z0-9_-]/ 当字符串只包含从 a 到z 大小写、数字、_ 和 -。 我的代码有什么问题? 能否请您向我提供一个简短的解释和有关如何修复它的代码示例? //var
我是一名优秀的程序员,十分优秀!