在提交按钮上打开弹窗

4
我在JSP中有一个表单。在该页面上有一些输入字段,当用户输入值后,点击提交按钮,这些值将被插入数据库。
但是我的目的是,当用户单击提交按钮时,将生成一个新的弹出窗口,并在父窗口中插入这些值。例如:第一页:Insert.jsp和弹出窗口:Verifyinsert.jsp。在Insert.jsp页面上有3个输入字段,如学号、学生姓名、地址。用户首先在Insert.jsp页面上输入这3个字段,然后单击Insert.jsp页面上的提交按钮,然后将生成一个新的弹出窗口(Verifyinsert.jsp),携带用户刚刚在Insert.jsp中输入的值,在Verifyinsert.jsp页面上,存在提交按钮,如果用户单击提交,则记录将被插入到数据库中,如果在Verifyinsert.jsp上单击取消按钮,则该弹出窗口将简单地消失。如何做到这一点?
非常感谢您的任何帮助。

只需将对jsp的调用放入window.open语句中即可。祝好! - elopez
3个回答

1

使用onSubmit事件

<html>
    <head>
        <script type="text/javascript">
            function greeting(){
                alert("Welcome " + document.forms["frm1"]["fname"].value + "!")
            }
        </script>
    </head>
    <body>

        What is your name?<br />
        <form name="frm1" action="submit.htm" onsubmit="greeting()">
            <input type="text" name="fname" />
            <input type="submit" value="Submit" />
        </form>

    </body>
</html> 

好的,但是我如何在弹出窗口中添加取消按钮,以便在单击取消后,我可以简单地返回到我的父窗口? - Tom
你可以使用JavaScript代码来处理这个问题。如果在onSubmit事件中返回false,那么就会取消提交,因此你可以创建一个弹出窗口来处理新的提交和取消操作。 - Victor

0
在 Insert.jsp 的提交中使用以下代码打开一个弹出窗口:
   window.open("../insert.jsp?param1=xx&&pram2=cc")

您可以像上面那样将参数作为附加到新窗口的url中发送。

在Verifyinsert.jsp的提交中,您可以使用父页面的JavaScript进行调用。

window.opener.saveValue() 

在您的父页面中有一个JavaScript函数,用于将值保存到数据库中。 保存后关闭弹出窗口。


0

您是在询问如何显示弹出窗口吗?它应该是JS弹出窗口,无需页面重新加载,还是单独的浏览器选项卡?对于前者,我们使用jqModal库,examples。当用户单击提交按钮时,您需要显示该弹出窗口。当用户在该弹出窗口上单击发送按钮时,您需要获取所有值并将它们发送到服务器。这也有几种方法可以实现 :)


弹出窗口是这样生成的:<input type="button" value="保存" onClick="window.open('Verifyinsert.jsp','mywindow', 'width=500, height=350, toolbar=no, resizable=yes, menubar=yes')" title="单击此处插入详细信息"/> 如何将insert.jsp的值传递到Verifyinsert.jsp页面? 当用户在insert.jsp中输入学生的rollno,name和address后,单击insert.jsp页面上的提交按钮后会生成一个新的弹出窗口,但是如何将rollno,学生姓名和地址的值从insert.jsp页面传递到Verifyinsert.jsp页面呢? - Tom
有几种方法,但它们都有点棘手 :) 你可以为保存按钮添加事件监听器,并等待页面打开并将数据传输到新窗口。或者在验证窗口中,在 onload 事件的某个地方,你可以从父窗口获取数据(似乎更简单,如 @Abhi 所建议的 window.opener)。也许你可以自定义按钮的 onclick 事件并使用 @Abhi 的方法。 - demalexx
在@Abhi的方法中...对于表单内的多个输入字段,我在JavaScript中遇到了错误。 <script type="text/javascript"> function greeting(){ alert("欢迎 " + document.forms["frm1"]["fname"].value + "!") } - Tom

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接