我正在创建一个portlet,并在那里有一个文件上传器。我应该得到通过js上传的文件的名称。
HTML代码:
<form id="theuploadform" onsubmit = "javascript:setTimeout('fileupload_ajax_query_upload_status', 1000);"; action=<portlet:resourceURL/> method="post" enctype="multipart/form-data" encoding="multipart/form-data" target="postiframe">
<input id="userfile" name="userfile" size="50" type="file" />
<input id="formsubmit" type="submit" value="Upload to server" onclick="handleUploadDialogClose2();" />
</form>
和js部分:
function handleUploadDialogClose2() {
var filepath = document.getElementById("userfile").value;
alert(filepath);
}
我选择要上传的文件,单击“上传到服务器”按钮并检查输入元素的值 - 它是空的。但是我在其他问题中看到的代码非常相似,并且有效 我该怎么办才能让它发挥作用?
我做错了吗?
答案 0 :(得分:1)
这应该有效:
function handleUploadDialogClose2() {
var filepath = document.getElementById("userfile").files[0];
console.log(filepath);
}
工作示例:js.bin
答案 1 :(得分:0)
您可以尝试删除表单中semi-colon
属性后的onsubmit
。它不应该像:
onsubmit = "javascript:setTimeout('fileupload_ajax_query_upload_status', 1000);";
但应该像:
onsubmit = "javascript:setTimeout('fileupload_ajax_query_upload_status', 1000);"
您也可以创建一个单独的函数来调用setTimeout()
,而不是将函数调用放在属性中。
希望这可以帮助您解决问题!