2016-06-28 4 views
1

私のHTMLページでボタンのクリックと非常に混乱しています。ダブルクリックを避けるために私のボタンIDに関数を設定しています。ダブルクリックは私のdatabase.Itのdoubleエントリを引き起こします。この問題が発生した理由を見つけることができませんでした。私のJavaクラスとjqueryにもエラーはありません。解決策を見つけるのを助けてください。あなたはそれが一度だけ押すことができるように、提出のボタンを無効にしようとすることができワンクリックで無効にした後、ダブルクリックしたボタンを取得する機会はありますか?

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

私は再びsubmitできない同じ値のフォーム検証をデータベースに与えます。 – dnvsp

+0

送信イベントがバインドされていますか?実際には、.prop( 'disbaled'、true);を使用して無効にする必要がありますが、ここで問題になるかどうかはわかりません。ところで、文字列をsetTimeoutコールバックとして使用しないでください。匿名関数を使用してください。今、なぜ '$("#btnSubmitInTimesheet ")を使うのかという質問が来ます。removeAttr(" disabled ")'ボタンを再び有効にしますか?なぜIDセレクターが無効になっているのですか?また、removeAttrを使用しないで、 '.prop()'を使用してください。 –

答えて

0

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メソッド。

+0

私はsubmit.iでボタンを無効にしようとしましたが、コードを更新しました。あなたはボタンをクリックして試してみました。 – dnvsp

関連する問題