2016-06-28 4 views
1

Sehr Verwirrung mit Knopfklicks in meiner html Seite. Ich habe eine Funktion zu meiner Knopf-ID gesetzt, um Doppelklicks zu vermeiden. Doppelte Klicken verursacht doppelte Einträge in meiner Datenbank. Es funktioniert bis jetzt gut. Aber heute wieder habe ich ein Doppeltes Eintrag in meiner Datenbank.Ich konnte nicht finden, was der Grund dafür ist, dieses Problem zu bekommen. Es gibt keine Fehler auch in meiner Java-Klasse und jquery.Bitte helfen Sie mir, Lösung zu finden. Für alle Hilfe danke im Voraus.Gibt es eine Chance, eine Schaltfläche mit Doppelklick zu erhalten, nachdem Sie sie mit einem Klick deaktiviert haben?

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-Methode:

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

"Doppelklick verursacht doppelte Einträge in meiner Datenbank" - den Datenbank/Backend-Teil reparieren. Sie sollten dem Kunden nicht trauen, Ihnen die richtigen Daten zu senden. – zapl

+0

Ich habe Formularvalidierung gegeben, die dieselben Werte sind, die sie nicht erneut eingereicht werden können. Es wird mit Datenbank überprüfen. – dnvsp

+0

Sind Sie sicher, dass der Submit-Event gebunden ist ??? Zu Ihrer Information: Sie sollten '.prop ('disballed', true);' verwenden, um es zu deaktivieren, aber ich bin mir nicht sicher, ob es hier ein Problem geben würde. BTW, verwenden Sie keine Zeichenfolge als setTimeout-Rückruf, verwenden Sie anonyme Funktion. Jetzt kommt die Frage, warum '$ (# # btnSubmitInTimesheet"). RemoveAttr ("disabled") 'zu reenable button verwenden? Warum ID-Selektor dort, aber nicht zum Deaktivieren? Und benutze nicht removeAttr, benutze '.prop()' –

Antwort

0

Sie könnten versuchen, die Taste deaktivieren auf einreichen, so dass es nur einmal gedrückt werden kann.

+0

zuerst versuchte ich mit, um eine Schaltfläche zu deaktivieren only only.I haben Code aktualisiert und Sie können dort sehen.Nachdem versuchte ich mit der Schaltfläche klicken – dnvsp

Verwandte Themen