【发布时间】:2016-11-04 18:02:38
【问题描述】:
以下代码有效并发布数据,但用户需要单击两次才能提交。我试过使用 submitHandler 但我是客户端 JS 验证和 AJAX 的新手,在这里很难。谢谢你
我需要删除或添加什么?
<input type="submit" value="SUBMIT" style="float:right;" name="submit_form" id="submit_form" class="btn btn-flat btn-success w-50">
$(document).ready(function() {
$("#solid-form").submit(function(event) {
$('#solid-form').validate({
errorClass: "state-invalid",
errorPlacement: function(error, element) {
error.insertAfter(element.parents('.form-group'));
},
//Rules for validation
});
if ($(this).valid()){
var submitContact = $('#submit_form'),
message = $('#msg');
submitContact.on('click', function(){
var $this = $(this);
var recaptchaResponse = grecaptcha.getResponse();
if(recaptchaResponse.length!=0){
$.ajax({
type: "POST",
url: 'template.php',
dataType: 'json',
cache: false,
data: $('#solid-form').serialize(),
success: function(data) {
if(data.info !== 'error'){
$this.parents('form').fadeOut("slow");
// $this.parents('form').find('input[type=text],textarea,select').filter(':visible').val('');
message.hide().removeClass('success').removeClass('error').addClass('success').html(data.msg).fadeIn('slow');
} else {
message.hide().removeClass('success').removeClass('error').addClass('error').html(data.msg).fadeIn('slow');
}
}
});
}else{
message.hide().removeClass('success').removeClass('error').addClass('error').html("Please validate reCaptcha.").fadeIn('slow').delay(3000).fadeOut('slow');
}
});
}
event.preventDefault();
});
});
</script>
【问题讨论】:
-
您的代码第一次和第二次生效
-
@KarthikeyanSekar 是的。现在我应该怎么做才能让它一键提交而不影响验证,以防出现错误。
-
你想跳过焦点,keyup,onclick监听器使用验证
onfocusout: false, onkeyup: false, onclick: false
标签: jquery ajax forms submit client-side-validation