如何在jQuery验证后禁用/启用提交按钮?
我想在“on_click”事件之后禁用表单的提交按钮,这个jscript成功地做到了这一点,但是当使用jquery验证了错误的电子邮件,然后按下提交按钮时,在我更正了电子邮件之后,该按钮仍然被禁用。我怎样才能解决这个问题 Jscript:如何在jQuery验证后禁用/启用提交按钮?,jquery,jquery-validate,Jquery,Jquery Validate,我想在“on_click”事件之后禁用表单的提交按钮,这个jscript成功地做到了这一点,但是当使用jquery验证了错误的电子邮件,然后按下提交按钮时,在我更正了电子邮件之后,该按钮仍然被禁用。我怎样才能解决这个问题 Jscript: <script src="js/libs/modernizr-2.6.2.min.js"></script> <script src="lib/jquery-1.11.1.js"></script> &l
<script src="js/libs/modernizr-2.6.2.min.js"></script>
<script src="lib/jquery-1.11.1.js"></script>
<script src="lib/jquery.js"></script>
<script src="dist/jquery.validate.js"></script>
<script>
$.validator.setDefaults({
submitHandler: function() {
signupForm.submit();
}
});
$().ready(function() {
//Desactiva el submit
$(".submit").click(function () {
$(".submit").attr("disabled", true);
$('#signupForm').submit();
});
// validate signup form on keyup and submit
$("#signupForm").validate({
wrapper: "div",
rules: {
email: {
required: true,
email: true
},
password: {
required: true,
minlength: 5
}
},
messages: {
email: "Use una cuenta de correo válida",
password: {
required: "Ingrese su contraseña",
minlength: "La contraseña al menos debe tener 5 caracteres"
}
}
});
});
</script>
$.validator.setDefaults({
submitHandler:function(){
signupForm.submit();
}
});
$().ready(函数()){
//迪西瓦酒店
$(“.submit”)。单击(函数(){
$(“.submit”).attr(“已禁用”,true);
$(“#注册表单”).submit();
});
//在键盘上验证注册表格并提交
$(“#注册表”).validate({
包装器:“div”,
规则:{
电邮:{
要求:正确,
电子邮件:真的
},
密码:{
要求:正确,
最小长度:5
}
},
信息:{
电子邮件:“使用una cuenta de correo vá;lida”,
密码:{
必需:“安格尔苏康瑟斯尼娜”,
minlength:“La contraseñ;一个5克拉的阿尔·梅诺斯·德贝·特内尔”
}
}
});
});
形式
科雷奥电气公司;尼科
绑定到提交
事件,而不是单击按钮
$('#signupForm').submit(function(){
$(this).find('.submit').prop('disabled',true);
});
或者,在插件的
submitHandler
选项中禁用您不能禁用单击事件上的按钮;因为如果单击按钮时表单仍然无效,则无法再次单击它。只有在表单成功通过验证后才能禁用它
<script>
$(document).ready(function() {
$("#signupForm").validate({
wrapper: "div",
rules: {
email: {
required: true,
email: true
},
password: {
required: true,
minlength: 5
}
},
messages: {
email: "Use una cuenta de correo válida",
password: {
required: "Ingrese su contraseña",
minlength: "La contraseña al menos debe tener 5 caracteres"
}
},
submitHandler: function(form) { // <- pass 'form' argument in
$(".submit").attr("disabled", true);
form.submit(); // <- use 'form' argument here.
}
});
});
</script>
使用插件的submitHandler
选项进行此操作,因为只有当表单通过验证时,它才会在单击按钮时触发
<script>
$(document).ready(function() {
$("#signupForm").validate({
wrapper: "div",
rules: {
email: {
required: true,
email: true
},
password: {
required: true,
minlength: 5
}
},
messages: {
email: "Use una cuenta de correo válida",
password: {
required: "Ingrese su contraseña",
minlength: "La contraseña al menos debe tener 5 caracteres"
}
},
submitHandler: function(form) { // <- pass 'form' argument in
$(".submit").attr("disabled", true);
form.submit(); // <- use 'form' argument here.
}
});
});
</script>
$(文档).ready(函数(){
$(“#注册表”).validate({
包装器:“div”,
规则:{
电邮:{
要求:正确,
电子邮件:真的
},
密码:{
要求:正确,
最小长度:5
}
},
信息:{
电子邮件:“使用una cuenta de correo vá;lida”,
密码:{
必需:“安格尔苏康瑟斯尼娜”,
minlength:“La contraseñ;一个5克拉的阿尔·梅诺斯·德贝·特内尔”
}
},
submitHandler:function(form){/如果您无权访问表单验证初始化,此方法可以帮助:
jQuery('#form').on('submit', function () {
if (jQuery(this).data('form_is_invalid')) {
jQuery(this).data('form_is_invalid', false);
} else {
jQuery(this).find('.submit').prop('disabled', true);
}
}).on('invalid-form.validate', function () {
jQuery(this).data('form_is_invalid', true);
});
最好将其留给插件中的submitHandler
。否则,您的submit()
处理程序将完全干扰或绕过验证。@Artenation.这是一个好问题。@Sparky.解释得很好。您节省了很多时间。谢谢