表单提交时禁用提交按钮
Disable submit button when form submit
我正在使用这个验证码,我想在验证后提交表单时禁用提交按钮。
提交按钮:
<input type="submit" class="submitStandard" value="Save Info" >
验证码:
<script type='text/javascript'>//<![CDATA[
$(".submitStandard").on('click', function() {
$('form').validate({
ignore: [],
rules: {
required: {
required: true
},
shopname: {
required: true
}
},
highlight: function(element) {
$(element).closest('.form-group').addClass('has-error');
},
unhighlight: function(element) {
$(element).closest('.form-group').removeClass('has-error');
},
errorElement: 'span',
errorClass: 'help-block',
errorPlacement: function(error, element) {
if(element.parent('.input-group').length) {
error.insertAfter(element.parent());
} else {
error.insertAfter(element);
}
}
});
});//]]>
</script>
任何可能的最佳解决方案,提交应在没有任何验证错误时禁用。
问题:当我保存信息时,如果我点击提交按钮两次或三次,它保存值两次或三次,应该是点击一次,然后应该是禁用。
只需添加:
$(this).prop("disabled", true);
完整代码:
$(".submitStandard").on('click', function() {
$(this).prop("disabled", true);
$('form').validate({
ignore: [],
rules: {
required: {
required: true
},
shopname: {
required: true
}
},
highlight: function(element) {
$(element).closest('.form-group').addClass('has-error');
},
unhighlight: function(element) {
$(element).closest('.form-group').removeClass('has-error');
},
errorElement: 'span',
errorClass: 'help-block',
errorPlacement: function(error, element) {
if(element.parent('.input-group').length) {
error.insertAfter(element.parent());
} else {
error.insertAfter(element);
}
}
});
});
或在 <form>
的 submit
事件上:
$('form').submit(function(){
$(this).find(".submitStandard").prop('disabled', true);
});
注意:我可以看到您使用的是通用 $("form")
。不推荐这样做,因为当 JavaScript 加载时,它会盲目地应用所有 <form>
元素。所以最好给个id
.
你可以试试-
$('form#id').submit(function(){
$(this).find('input[type=submit]').prop('disabled', true);
});
利用 submitHandler
属性 of validate
如下:
$(".submitStandard").on('click', function() {
var button=$(this);
$('form').validate({
ignore: [],
rules: {
required: {
required: true
},
shopname: {
required: true
}
},
//.. Other properties
//..
submitHandler: function(form) {
if(form.valid()) //check if form is valid?
{
button.prop("disabled", true);
}
},
//..
});
});
HTML:
<form id="registrationfrm" method="post">
<input type="submit" id="submitbtn" name="submit" value='SAVE' />
</form>
Jquery:
$("#registrationfrm").on("submit",function(){
$("#submitbtn").prop('disabled', true);
});
我正在使用这个验证码,我想在验证后提交表单时禁用提交按钮。 提交按钮:
<input type="submit" class="submitStandard" value="Save Info" >
验证码:
<script type='text/javascript'>//<![CDATA[
$(".submitStandard").on('click', function() {
$('form').validate({
ignore: [],
rules: {
required: {
required: true
},
shopname: {
required: true
}
},
highlight: function(element) {
$(element).closest('.form-group').addClass('has-error');
},
unhighlight: function(element) {
$(element).closest('.form-group').removeClass('has-error');
},
errorElement: 'span',
errorClass: 'help-block',
errorPlacement: function(error, element) {
if(element.parent('.input-group').length) {
error.insertAfter(element.parent());
} else {
error.insertAfter(element);
}
}
});
});//]]>
</script>
任何可能的最佳解决方案,提交应在没有任何验证错误时禁用。
问题:当我保存信息时,如果我点击提交按钮两次或三次,它保存值两次或三次,应该是点击一次,然后应该是禁用。
只需添加:
$(this).prop("disabled", true);
完整代码:
$(".submitStandard").on('click', function() {
$(this).prop("disabled", true);
$('form').validate({
ignore: [],
rules: {
required: {
required: true
},
shopname: {
required: true
}
},
highlight: function(element) {
$(element).closest('.form-group').addClass('has-error');
},
unhighlight: function(element) {
$(element).closest('.form-group').removeClass('has-error');
},
errorElement: 'span',
errorClass: 'help-block',
errorPlacement: function(error, element) {
if(element.parent('.input-group').length) {
error.insertAfter(element.parent());
} else {
error.insertAfter(element);
}
}
});
});
或在 <form>
的 submit
事件上:
$('form').submit(function(){
$(this).find(".submitStandard").prop('disabled', true);
});
注意:我可以看到您使用的是通用 $("form")
。不推荐这样做,因为当 JavaScript 加载时,它会盲目地应用所有 <form>
元素。所以最好给个id
.
你可以试试-
$('form#id').submit(function(){
$(this).find('input[type=submit]').prop('disabled', true);
});
利用 submitHandler
属性 of validate
如下:
$(".submitStandard").on('click', function() {
var button=$(this);
$('form').validate({
ignore: [],
rules: {
required: {
required: true
},
shopname: {
required: true
}
},
//.. Other properties
//..
submitHandler: function(form) {
if(form.valid()) //check if form is valid?
{
button.prop("disabled", true);
}
},
//..
});
});
HTML:
<form id="registrationfrm" method="post">
<input type="submit" id="submitbtn" name="submit" value='SAVE' />
</form>
Jquery:
$("#registrationfrm").on("submit",function(){
$("#submitbtn").prop('disabled', true);
});