2016-06-28 74 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