如何使用jQuery正确验证表单?

时间:2015-04-04 14:41:12

标签: javascript jquery forms validation

所以我的表单有这个jQuery:

frm.submit(function(event) {

  validateForm();

  if(validateForm()) {
    $(this).submit();
    } else {
    event.preventDefault();
  }

});

它确实有点工作,但是我得到了JS <error>(并且它没有在控制台中说出任何其他内容),我认为原因是该函数必须再次进行验证?有点像循环依赖。

你能告诉我一个更好的方法来做我想在这里取得的确切事吗?

  1. 如果以错误的方式填写,则验证并显示错误;
  2. 如果一切正常,请提交表格

2 个答案:

答案 0 :(得分:0)

function validateForm(){
 if (input.val().isok && select.val().ispresent){
   form.submit();
 }else{
  show_errors();
 }
}

为什么不那样?

答案 1 :(得分:0)

这样的事可能吗?

HTML -

<input type="text" id="name" />
<input type="tel" id="phone" />
<div id="submit">Submit</div><br>
<div id="errors"></div>


JS -

var user = {}

$('#submit').click(function(){
    // validating form

    if(!$('#name').val()) {
        $('#errors').text('invalid value in "name" field')
        return false;
    }    

    if(!$('#phone').val()) {
        $('#errors').text('invalid value in "phone" field')
        return false;
    }

    $('#errors').text('');
    user.phone = $('#phone').val();
    user.name = $('#name').val();

    // form submission goes here

});

逻辑 -
一旦函数返回任何内容(true,false,一个字符串,你命名它),就会阻止在返回之后执行任何其他操作。
如果你不使用任何类型的返回,函数默认返回true,这意味着JS代码将继续执行下一个函数\声明。

这使您可以选择在返回false之前操作元素并处理错误,并使函数停止继续运行。