在 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 属性中定义的 GETPOST 方法提交哪些输入(数据)。这最终将触发 servlet 的 doGetdoPost 方法。

现在,通过从我们的按钮中删除 type=submit,我们可以防止自动提交表单。通过在我们的按钮上添加事件处理程序,我们可以在单击按钮时执行一些 javascript。同样可以通过 <button id=".." onclick="myFunction();">

实现

最后,提交表单的实际上是内部检查 javascript 表单检查。

希望对您有所帮助