仍然在我的mainEFT.jsp上工作,我试图添加一个确认框,检查用户是否不想在命令行中输入值并选择所有记录。如果他们点击“确定”,那么它应该处理所有记录。如果他们单击“取消”,他们会收到另一条消息并返回命令行。这是“文档”.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>
当我点击OK时,程序不会进入我的EFTscreen.java程序并继续处理。这是使用停止处理的确认框或其他问题吗?我想我回来时需要一些东西,但不确定。当我在任何这些字段中有数据时,我正在访问我的EFTscreen.java程序。
由于
答案 0 :(得分:0)
我之前的回答不正确。我误解了你的问题。现在,我再次看到它,你的代码中的问题在于你正在提交&#34;提交&#34;按钮与mousedown处理程序同时。要使代码生效,您必须具备以下内容:
<form id="myform" method="get" action="EFTscreen?action=searchEFT">
..... Various controls in for (text - checkboxes - dropdowns)
<button id="searchEFT">Search</button>
</form>
(请注意,在我的代码中,按钮不是type =&#34;提交&#34;)
然后如上所述添加您的鼠标hanlder,但不是返回true,您必须提交表单:
$('#myform').submit();
更新:
现在怎么样?好吧,您附上要在form
元素中提交的数据。 form
元素定义了使用表单的GET
属性中定义的POST
或action
方法提交的输入(数据)。这最终将触发servlet的doGet
或doPost
方法。
现在,通过从我们的按钮中删除type=submit
,我们阻止自动提交表单。通过在我们的按钮上添加事件处理程序,我们可以在单击按钮时执行一些javascript。 <button id=".." onclick="myFunction();">
最后提交表单的事实上是内部检查javascript表单检查。
希望这是有帮助的