java - 使用 javascript 在上传文件时执行两个操作。文件和文件详细信息不会传递到 javascript 函数

标签 java javascript jsp

我正在使用此代码上传文件。我必须执行两个提交操作。所以我调用了一个 JavaScript 函数 onclick()。但是,文件和使用表单输入的文件详细信息都不会传输到 javascript 函数。我在这里缺少什么?

<jsp:include page="template-top.jsp" />
<script type="text/javascript">
function onSubmit(){
    document.forms["frm"].action="http://192.168.1.53/api.php/submit.xml";
    document.forms["frm"].target="_blank";
    document.forms["frm"].submit();
    document.forms["frm"].action="directuploadsubmit.do";
    document.forms["frm"].target="_blank";
    document.forms["frm"].submit();
}
</script>
<style type="text/css">

td.boldtext{
font-weight: bold;
font-family:Helvetica,sans-serif;
font-size:16pt;
color:black;
width:200;
}

</style>
<%@ page import="databeans.Submit" %>
<%@ page import="databeans.User"  %>
<%@ page import="databeans.Sandboxes"  %>

<%
    User user = (User) session.getAttribute("user");
%>

<div style="visibility:hidden">
<iframe NAME = "iframe1" WIDTH="40" HEIGHT="40"></iframe>
</div>

<form id="frm" name="frm" method="POST" enctype="multipart/form-data">
<table>
    <tr> <td class="boldtext">
    Direct Submission
    </td>
    </tr>
</table>
<table>
            <tr>
            <td colspan="2">
            <font color="red">Complete notes as Case#:Notes (Example: <font color="blue">"Case12345:test sample"</font>)
            </font>
            </td>
            </tr>
            <tr>
            <td width=50>
            <font color="black" face="Helvetica,sans-serif">File:* </font></td>
            <td><input type="file" name="file" value="${filename}" size="100"/></td>
            </tr>
            <tr>
            <td width=50>
            </td>
            <td><input type="hidden" name="email" readonly="readonly" value="<%=user.getUserName() %>" size="100"/></td>
            </tr>
            <tr>
            <td width=50>
            <font color="black" face="Helvetica,sans-serif">Notes: </font></td>
            <td><input type="text" name="notes" value="" size="100"/></td>
            </tr>
            <tr>
            <td width=50>
            <font color="black" face="Helvetica,sans-serif">Sandbox: </font></td>
            <td><select name="sandboxes[]">
            <option value="00-0C-29-CF-B8-A6">VMSB1 - Win7</option>
            <option value="00-0C-29-0A-AB-9A">VMSB2 - WinXP</option>
            </select>
            </td>
            </tr>
            <tr>
            <td width=50 colspan="2" align="left"><font face="Helvetica,sans-serif" color="FF0000">All * marked fields are mandatory    
            </font>
            </td>
            </tr>
            <tr>
            <td width=50 colspan="2" align="center">
        <!--    <input type="submit" name="submit" value="Submit" onclick= "this.form.target='_blank'; return true;">
        -->
        <input type="submit" name="button" value="Submit" onClick="onSubmit()">
            </td>
            </tr>
</table>
</form>
<jsp:include page="template-bottom.jsp" />

最佳答案

您应该将 onSubmit 函数绑定(bind)到表单,而不是 submit 按钮。

<script type="text/javascript">
function onSubmit(){
    //First form submission:
    document.forms["frm"].action = "http://192.168.1.53/api.php/submit.xml";
    document.forms["frm"].submit(); //Submit #1

    //Change the action
    document.forms["frm"].action = "directuploadsubmit.do";
}
</script>
...

<form action="directuploadsubmit.do" onsubmit="onSubmit();" name="frm" method="POST" enctype="multipart/form-data" target="_blank">
... rest of page

当用户禁用 JavaScript 时,默认操作是仅在新窗口中将表单提交到 directuploadsubmit.do。当启用 JavaScript 时,会发生以下情况:

  1. action 属性已更改为 submit.xml
  2. 表单提交(使用.submit()
  3. action 属性已更改(返回到 direcuploadsubmit.do
  4. 表单已提交,因为用户单击了提交按钮。[1]

[1] 当用户单击“提交”时,会发生以下事件:

  1. 触发 submit 事件(如果启用了 JavaScript)
  2. 表单已提交到操作中提到的页面。

关于java - 使用 javascript 在上传文件时执行两个操作。文件和文件详细信息不会传递到 javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7679460/

相关文章:

javascript - Chrome-Javascript : Negative Exponent Calculation is wrong for > -3

java - 自定义 JSP 页面

java - AtomicInteger 似乎不适合我

java - 无法打开 JPA EntityManager 进行事务 - 通信链接失败(Spring-boot/jpa/hibernate/连接池)

java - 保护 jsp 页面的安全

javascript - Camera js Web App无法获取相机提要

javascript - 获取无法读取正则表达式中 null 的属性 '0'

java - 尝试使用相同的 ajax 调用取消关注时,关注/取消关注按钮不起作用

eclipse - Apache Tomcat 或 Eclipse 重定向到本地主机 :8080/instead of localhost:8080/projectname/index. jsp

java - 如何从 java HashMap 获取不可变集合?