khóa phím f5 khi hệ thống đang xử lý dữ liệu

Một số kỹ thuật website đôi lúc bạn cần phải sử dụng thủ thuật để ngăn hành vi người dùng sử dụng sai mục đích hoặc cố tình làm hệ thống của bạn bị sai không kiểm soát được. Ví dụ trường hợp khi website của bạn đang xử lý lưu đơn hàng, gửi mail xác nhận đơn hàng thay vì chờ trong vài giây đến 1 phút thì khách hàng cứ nhấn F5 liên tục làm hệ thống của bạn bị double dữ liệu.

 

Cách xử lý: bạn chỉ cần dùng jquery viết trong sự kiện submit để khóa phím khi cần thiết.

Code ví dụ:

//Nhúng thư viện jquery vào nhé...

//Hàm khóa phím f5

function disableF5(e)

{ if ((e.which || e.keyCode) == 116) e.preventDefault();

};

 

// Bắt sự kiện gọi hàm khóa phím

$(function(){


 $('#my_form').submit(function(){
         
      
                $(document).on("keydown", disableF5);
                $('.button-last .float-right a:eq(0)').attr("onclick","return false;");


                $('#waiting_dialog').show();//show dialog
                $('#waiting_dialog').dialog({ modal: true },{width:500, height:200}); //hien thi dialog jquery ui (form chờ)
        
       
   })

 


// html dialog form chờ dùng jquery ui

//xem code jquey ui dialog tại đây

<div style="text-align:center;">
  
    <p>Đang xử lý đơn đặt hàng. Xin Quý Khách vui lòng chờ trong giây lát...</p>
</div>

--- Chúc bạn thành công !