Javascript 如果使用jquery进行验证,如何提交表单?
我正在用jquery验证表单。因此,当表单提交时,我使用的是Javascript 如果使用jquery进行验证,如何提交表单?,javascript,php,jquery,forms,validation,Javascript,Php,Jquery,Forms,Validation,我正在用jquery验证表单。因此,当表单提交时,我使用的是event.preventDefault()
event.preventDefault()验证表单后,表单将提交到相应的操作页面。但在我的情况下,它不起作用
对我所做的进行编码-
$('form[name=contact_form]').submit(function(event) {
event.preventDefault();
var formData = $('form[name=contact_form]').serialize();
var phone = $.trim($('form[name=contact_form]').find('input[name=PHONE]').val()).length;
var intRegex = /[0-9 -()+]+$/;
var alert = $('#contact_alert');
var success = $('#contact_success');
if(phone==0){
phone.focus();
alert.html("<p class='alert alert-danger' style='text-align:left;'>Phone number is required</p>");
}
else if((phone < 10)){
phone.focus();
alert.html("<p class='alert alert-danger' style='text-align:left;'>Please enter a valid phone number</p>");
return false;
}else{
return true;
}
});
$('form[name=contact_form]')。提交(函数(事件){
event.preventDefault();
var formData=$('form[name=contact_form]')。serialize();
var phone=$.trim($('form[name=contact_form]').find('input[name=phone]').val()).length;
var intRegex=/[0-9-()+]+$/;
var警报=$('联系警报');
var success=$(“#联系#u success”);
如果(电话==0){
phone.focus();
html(需要电话号码
);
}
如果有其他情况((电话<10)){
phone.focus();
html(请输入有效的电话号码
);
返回false;
}否则{
返回true;
}
});
Html页面:
<?php
echo form_open_multipart('home/inquiry', array('name' => 'contact_form'));
?>
<div class="row">
<div class="col-md-6">
<div class="form-group">
<input type="hidden" name="form_type" value="C">
<input type="text" name="NAME" id="user-name" class="form-control" placeholder="Full Name"/>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<input type="text" name="PHONE" id="user-phone" class="form-control" placeholder="Phone"/>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<input type="text" name="EMAIL" id="user-email" class="form-control" placeholder="Email"/>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<input type="text" name="SUBJECT" id="user-subject" class="form-control" placeholder="Reason for inquiry"/>
</div>
</div>
<div class="col-md-12">
<textarea class="form-control" name="MESSAGE" id="user-message" placeholder="Message"></textarea>
</div>
<div class="col-md-12 text-left">
<div class="form-group">
<input type="submit" name="submit" class="btn btn-warning">
</div>
</div>
</div>
<?php echo form_close(); ?>
不要调用事件.preventDefault()代码>如果希望在表单验证ok后提交表单
验证失败后返回false就足够了。不要调用event.preventDefault()代码>如果希望在表单验证ok后提交表单
$(this).submit();
验证失败后返回false就足够了
$(this).submit();
当它有效的时候
当它有效时。尝试替换返回true$(this.submit())的代码>代码>尝试替换返回true$(this.submit())的代码>代码>我通常会这样做
$("#submit").submit(function(e){
if(validateFields() == true){ //If all fields are valid
$("#submit").submit();
}
else{
e.preventDefault(e);
}
});
我通常做类似的事情
$("#submit").submit(function(e){
if(validateFields() == true){ //If all fields are valid
$("#submit").submit();
}
else{
e.preventDefault(e);
}
});
如果我不调用event.preventDefault()
然后此函数$('form[name=contact_form]')。submit(函数(事件)
没有直接调用表单submit..看起来if(phone==0)中应该有return false
也是部分。当手机长度小于10个字符时,返回的是false
,但当手机长度等于0时,返回的不是。如果我不调用event.preventDefault();
则此函数$('form[name=contact\u form]')。提交(函数(事件)
没有调用表单直接提交..在if(phone==0)
部分中似乎也应该有return false
。当phone小于10个字符时返回false
,但当phone的长度等于0时不返回。