2016-06-28 71 views
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)); 
} 
+2

「雙擊會在我的數據庫中導致重複輸入」 - 修復數據庫/後端部分。您不應該相信客戶向您發送正確的數據。 – zapl

+0

我給出的表單驗證是相同的值,他們不能再次提交,它會檢查數據庫。 – dnvsp

+0

你確定提交事件被綁定嗎?僅供參考,您應該使用'.prop('disbaled',true);'禁用它,但我不確定這是否會成爲問題。順便說一句,不要使用字符串作爲setTimeout回調,使用匿名函數。現在問題來了,爲什麼使用'$(「#btnSubmitInTimesheet」)。removeAttr(「disabled」)來重新啓用按鈕?爲什麼選擇ID選擇器,但不禁用它?並且不要使用removeAttr,仍然使用'.prop()' –

回答

0

你可以嘗試禁用提交按鈕,所以它只能按下一次。

+0

首先,我試圖禁用一個按鈕上提交only.i有更新的代碼,你可以看到那裏。之後,我嘗試用按鈕單擊 – dnvsp