1
我的html页面中的按钮点击变得非常混乱。我已经为我的按钮ID设置了一个函数,以避免双击。双击导致我的数据库中出现了两个条目。它到目前为止工作得很好。但是今天我又得到了一个双进入我的数据库。我无法找到什么是得到这个问题的原因。在我的java类和jquery中也没有错误。请帮助我找到解决方案。对于所有帮助,请提前致谢。在点击一次鼠标左键后,是否有机会获得双击按钮?
My jquery code is:
$(function()
{
$('#timesheetForm').submit(function(){
$("input[type='submit']", this).val("Please Wait...")
.attr('disabled', 'disabled');
setTimeout('$("#btnSubmitInTimesheet").removeAttr("disabled")', 1500);
$("input[type='submit']", this).val("Submit")
return true;
});
});
Java方法:
public static Result save(Long storeId) {
System.out.println("inside save method===========");
Store store = Store.find.byId(storeId);
Long empId = Long.parseLong(form().bindFromRequest().get("empid"));
String startDate = form().bindFromRequest().get("date");
String endDate = form().bindFromRequest().get("endDate");
String leaveType = form().bindFromRequest().get("leaveType");
String status = form().bindFromRequest().get("status");
Employee employee = Employee.find.byId(empId);
System.out.println("Selected Employee Id is ========" + employee.id);
String jobTitle = employee.designation;
String firmType = "STORE";
if (!leaveType.equals("None")) { // if he selected one leave type
Timesheet.create(empId, startDate, endDate, leaveType, "0", "0",
"0", "0", "0:0", jobTitle, firmType, storeId, status);
} else {
String startHours = form().bindFromRequest().get("startTimeHour");
String startMins = form().bindFromRequest().get("startTimeMins");
String endHours = form().bindFromRequest().get("endTimeHour");
String endMins = form().bindFromRequest().get("endTimeMins");
String duration = form().bindFromRequest().get("duration");
Timesheet.create(empId, startDate, endDate, leaveType, startHours,
startMins, endHours, endMins, duration, jobTitle, firmType,
storeId, status);
System.out.println("employeee saved is=========" + employee);
}
System.out.println("Timesheet saved=========");
return redirect(routes.Timesheets.showBlank(storeId));
}
“双击会在我的数据库中导致重复输入” - 修复数据库/后端部分。您不应该相信客户向您发送正确的数据。 – zapl
我给出的表单验证是相同的值,他们不能再次提交,它会检查数据库。 – dnvsp
你确定提交事件被绑定吗?仅供参考,您应该使用'.prop('disbaled',true);'禁用它,但我不确定这是否会成为问题。顺便说一句,不要使用字符串作为setTimeout回调,使用匿名函数。现在问题来了,为什么使用'$(“#btnSubmitInTimesheet”)。removeAttr(“disabled”)来重新启用按钮?为什么选择ID选择器,但不禁用它?并且不要使用removeAttr,仍然使用'.prop()' –