在 JSP 中确认框调用后处理 servlet 调用的问题
Issue processing a servlet call after a confirm box call in JSP
仍在处理我的 mainEFT.jsp,我试图添加一个确认框来检查用户是否不想在命令行和 select 所有记录中输入值。如果他们单击“确定”,那么它应该处理所有记录。如果他们单击“取消”,他们会收到另一条消息并返回命令行。这是‘document).ready(function)’部分中的代码:
$("#searchEFT").mousedown(function ()
{
var Cmd_Sched_Number = document.getElementById("CMDScheduleNumber").value;
var Cmd_Contract_Year = document.getElementById("CMDContractYear").value;
var Cmd_Status = document.getElementById("CMDSchedStatus").value;
var Cmd_Creation_Date = document.getElementById("CMDCreationDate").value;
if (Cmd_Sched_Number == "")
{
if (Cmd_Contract_Year != "") {
alert("Schedule Number and EFT Contract Year must be both populated");
return false;
}
}
else if (Cmd_Contract_Year == "")
{
alert("Schedule Number and EFT Contract year must be both populated");
return false;
}
if (Cmd_Status == " " && Cmd_Creation_Date == "" &&
Cmd_Sched_Number == "" && Cmd_Contract_Year == "")
{
if (confirm("Are you sure you want to pull all EFT schedule numbers?") == false)
{
alert("Please enter information in any of the command line fields") ;
return false ;
}
else
{
return true ;
}
}
});
调用 EFTscreen.java 程序的按钮代码如下:
<button id="searchEFT" type="submit" formaction="EFTscreen?action=searchEFT"
class="btn smBtn">Search</button>
当我单击“确定”时,程序不会转到我的 EFTscreen.java 程序并继续处理。这是使用停止处理的确认框或其他问题的问题吗?我想我需要 return 上的一些东西,但不确定。当我在任何这些字段中有数据时,我将进入我的 EFTscreen.java 程序。
谢谢
我之前的回答不正确。我误读了你的问题。现在我再次看到它,您的代码中的问题在于您同时拥有一个带有 mousedown 处理程序的 "submit" 按钮。为了使您的代码正常工作,您必须具有以下内容:
<form id="myform" method="get" action="EFTscreen?action=searchEFT">
..... Various controls in for (text - checkboxes - dropdowns)
<button id="searchEFT">Search</button>
</form>
(请注意,在我的代码中,按钮不是 type="submit")
然后像上面那样添加你的鼠标处理器,但你必须提交表单而不是返回 true:
$('#myform').submit();
更新:
现在如何运作?那么,您将要提交的数据包含在 form
元素中。 form
元素定义将使用表单的 action
属性中定义的 GET
或 POST
方法提交哪些输入(数据)。这最终将触发 servlet 的 doGet
或 doPost
方法。
现在,通过从我们的按钮中删除 type=submit
,我们可以防止自动提交表单。通过在我们的按钮上添加事件处理程序,我们可以在单击按钮时执行一些 javascript。同样可以通过 <button id=".." onclick="myFunction();">
实现
最后,提交表单的实际上是内部检查 javascript 表单检查。
希望对您有所帮助
仍在处理我的 mainEFT.jsp,我试图添加一个确认框来检查用户是否不想在命令行和 select 所有记录中输入值。如果他们单击“确定”,那么它应该处理所有记录。如果他们单击“取消”,他们会收到另一条消息并返回命令行。这是‘document).ready(function)’部分中的代码:
$("#searchEFT").mousedown(function ()
{
var Cmd_Sched_Number = document.getElementById("CMDScheduleNumber").value;
var Cmd_Contract_Year = document.getElementById("CMDContractYear").value;
var Cmd_Status = document.getElementById("CMDSchedStatus").value;
var Cmd_Creation_Date = document.getElementById("CMDCreationDate").value;
if (Cmd_Sched_Number == "")
{
if (Cmd_Contract_Year != "") {
alert("Schedule Number and EFT Contract Year must be both populated");
return false;
}
}
else if (Cmd_Contract_Year == "")
{
alert("Schedule Number and EFT Contract year must be both populated");
return false;
}
if (Cmd_Status == " " && Cmd_Creation_Date == "" &&
Cmd_Sched_Number == "" && Cmd_Contract_Year == "")
{
if (confirm("Are you sure you want to pull all EFT schedule numbers?") == false)
{
alert("Please enter information in any of the command line fields") ;
return false ;
}
else
{
return true ;
}
}
});
调用 EFTscreen.java 程序的按钮代码如下:
<button id="searchEFT" type="submit" formaction="EFTscreen?action=searchEFT"
class="btn smBtn">Search</button>
当我单击“确定”时,程序不会转到我的 EFTscreen.java 程序并继续处理。这是使用停止处理的确认框或其他问题的问题吗?我想我需要 return 上的一些东西,但不确定。当我在任何这些字段中有数据时,我将进入我的 EFTscreen.java 程序。
谢谢
我之前的回答不正确。我误读了你的问题。现在我再次看到它,您的代码中的问题在于您同时拥有一个带有 mousedown 处理程序的 "submit" 按钮。为了使您的代码正常工作,您必须具有以下内容:
<form id="myform" method="get" action="EFTscreen?action=searchEFT">
..... Various controls in for (text - checkboxes - dropdowns)
<button id="searchEFT">Search</button>
</form>
(请注意,在我的代码中,按钮不是 type="submit")
然后像上面那样添加你的鼠标处理器,但你必须提交表单而不是返回 true:
$('#myform').submit();
更新:
现在如何运作?那么,您将要提交的数据包含在 form
元素中。 form
元素定义将使用表单的 action
属性中定义的 GET
或 POST
方法提交哪些输入(数据)。这最终将触发 servlet 的 doGet
或 doPost
方法。
现在,通过从我们的按钮中删除 type=submit
,我们可以防止自动提交表单。通过在我们的按钮上添加事件处理程序,我们可以在单击按钮时执行一些 javascript。同样可以通过 <button id=".." onclick="myFunction();">
最后,提交表单的实际上是内部检查 javascript 表单检查。
希望对您有所帮助