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()' –