代码之家  ›  专栏  ›  技术社区  ›  hammerva

在JSP中的确认框调用后处理servlet调用的问题

  •  1
  • hammerva  · 技术社区  · 9 年前

    我还在做我的主EFT。jsp和我试图添加一个确认框,检查用户是否不想在命令行中输入值并选择所有记录。如果他们单击“确定”,则应处理所有记录。如果单击“取消”,则会收到另一条消息并返回命令行。这是文档中的代码)。就绪(功能)部分:

        $("#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 ;
                    }                
               }
    
         });
    

    这是调用EFT屏幕的按钮的代码。java程序:

            <button id="searchEFT" type="submit" formaction="EFTscreen?action=searchEFT" 
                            class="btn smBtn">Search</button>
    

    当我单击“确定”时,程序不会进入我的EFT屏幕。java程序并继续处理。这是使用停止处理的确认框的问题还是其他问题?我想我需要一些东西回来,但不确定。我正在进入EFT屏幕。当我在这些字段中有数据时。

    谢谢

    1 回复  |  直到 9 年前
        1
  •  0
  •   MaVRoSCy    9 年前

    我以前的回答不正确。我误解了你的问题。现在我又看到了,您的代码中的问题在于您同时拥有一个“提交”按钮和一个mousedown处理程序。要使代码正常工作,您必须具有以下内容:

    <form id="myform" method="get" action="EFTscreen?action=searchEFT">
        ..... Various controls in for (text - checkboxes - dropdowns)
        <button id="searchEFT">Search</button>
    </form>
    

    (请注意,在我的代码中,按钮不是type=“提交”)

    然后如上所述添加鼠标手柄,但您必须提交表单,而不是返回true:

    $('#myform').submit();
    

    更新: 现在这是如何工作的?好吧,你把你要提交的数据附在 form 要素这个 类型 元素定义将使用 GET POST 中定义的方法 action 属性。这将最终触发servlet的 doGet doPost 方法。

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

    最后,提交表单的事情实际上是由内而外的javascript表单检查。

    希望是有用的