2014년 4월 1일 화요일

Double submit 방지

In Web development, the most common issue is the double same form submission. Often times, users like to press few time on the submit button to make sure the button is surely clicked, and causing the double form submission issue.
The common solution is disabled the submit button after user clicked on it, and display a loading or submitting message to show user the form is on the progress.

Disable submit button

To disable the submit button with jQuery, you just need to add a “disabled” attribute to the submit button.
$('input:submit').click(function(){
 $('p').text("Form submiting.....");
 $('input:submit').attr("disabled", true); 
});

Enable submit button

To enable back the disabled submit button, set the “disabled” attribute to false, or remove the “disabled” attribute.
$('input:submit').attr("disabled", false); 
or
$('input:submit').removeAttr("disabled");

Try it yourself

<html>
<head>
 
<script type="text/javascript" src="jquery-1.4.2.min.js"></script>
 
<style type="text/css">
 .submit{
  padding:8px;
  border:1px solid blue;
 }
</style>
 
</head>
 
<body>
 
<h1>Disabled submit form button after clicked with jQuery</h1>
 
<form action="#">
 <p>
  I'm a form ~
 </p>
 <input type="submit" value="Submit"></input>
        <button>Enable Submit Button</button>
</form>
 
<script type="text/javascript">
 
$('input:submit').click(function(){
 $('p').text("Form submiting.....").addClass('submit');
 $('input:submit').attr("disabled", true); 
});
 
$('button').click(function(){
 $('p').text("I'm a form ~").removeClass('submit');
 $('input:submit').attr("disabled", false); 
});
 
</script>
 
</body>
</html>

댓글 없음:

댓글 쓰기