Javascript 是否使表单验证返回true?

Javascript 是否使表单验证返回true?,javascript,jquery,Javascript,Jquery,这是我的验证代码: function validateEnquiryForm() { var x = document.forms["enquiry"]["name"].value; if(x == null || x == "" || x == "Name") { $('#name').removeClass('custom').addClass('error'); $('.name-error').show();

这是我的验证代码:

  function validateEnquiryForm() {
      var x = document.forms["enquiry"]["name"].value;
      if(x == null || x == "" || x == "Name") {
          $('#name').removeClass('custom').addClass('error');
          $('.name-error').show();
          //return false;
      } else if(x !== null || x !== "" || x !== "Name") {
          $('#name').removeClass('error').addClass('custom');
          $('.name-error').hide();
      }
      var x = document.forms["enquiry"]["phone"].value;
      if(x == null || x == "" || x == "Phone Number") {
          $('#phone').removeClass('custom').addClass('error');
          $('.phone-error').show();
          //return false;
      } else if(x !== null || x !== "" || x !== "Phone Number") {
          $('#phone').removeClass('error').addClass('custom');
          $('.phone-error').hide();
      }
      var x = document.forms["enquiry"]["requirements"].value;
      if(x == null || x == "" || x == "Add any other extra requirements here...") {
          $('#requirements').removeClass('textarea-1').addClass('error');
          $('.requirements-error').show();
          //return false;
      } else if(x !== null || x !== "" || x !== "Add any other extra requirements here...") {
          $('#requirements').removeClass('error').addClass('custom');
          $('.requirements-error').hide();
      }
      var x = document.forms["enquiry"]["summary"].value;
      if(x == null || x == "" || x == "Summarise your project in a few key words...") {
          $('#summary').removeClass('custom').addClass('error');
          $('.summary-error').show();
          //return false;
      } else if(x !== null || x !== "" || x !== "Summarise your project in a few key words...") {
          $('#summary').removeClass('error').addClass('custom');
          $('.summary-error').hide();
      }
      var x = document.forms["enquiry"]["email"].value;
      var atpos = x.indexOf("@");
      var dotpos = x.lastIndexOf(".");
      if(atpos < 1 || dotpos < atpos + 2 || dotpos + 2 >= x.length) {
          $('#email').removeClass('custom').addClass('error');
          $('.email-error').show();
          //return false;
      } else if(atpos > 1 || dotpos > atpos + 2 || dotpos + 2 <= x.length) {
          $('#email').removeClass('error').addClass('custom');
          $('.email-error').hide();
      }
      $('.error-banner').effect("pulsate", {
          times: 2
      }, 1000);
      return false;
  }
函数validateEnquiryForm(){
var x=文件.表格[“查询”][“名称”].值;
如果(x==null | | x==“”| | x==“名称”){
$('#name').removeClass('custom').addClass('error');
$('.name错误').show();
//返回false;
}如果(x!==null | | x!==“”| | x!==“名称”),则为else{
$('#name').removeClass('error').addClass('custom');
$('.name错误').hide();
}
var x=文件.表格[“查询”][“电话”].值;
如果(x==null | | x==“”| | x==“电话号码”){
$('#phone').removeClass('custom').addClass('error');
$('.phone error').show();
//返回false;
}如果(x!==null | | x!==“电话号码”){
$('#phone').removeClass('error').addClass('custom');
$('.phone error').hide();
}
var x=文件。表格[“查询”][“要求”]。价值;
如果(x==null | | x==“”| | x==“在此处添加任何其他额外要求…”){
$(“#要求”).removeClass('textarea-1').addClass('error');
$('.requirements error').show();
//返回false;
}否则,如果(x!==null | | x!==“”| | x!==“在此处添加任何其他额外要求…”){
$(“#要求”).removeClass('error').addClass('custom');
$('.requirements error').hide();
}
var x=文件。表格[“查询”][“汇总”]。值;
如果(x==null | | x==“”| | x==“用几个关键词总结您的项目…”){
$('#summary').removeClass('custom').addClass('error');
$('.summary error').show();
//返回false;
}否则,如果(x!==null | | x!==“”| | x!==“用几个关键词总结您的项目…”){
$('#summary').removeClass('error').addClass('custom');
$('.summary error').hide();
}
var x=文件。表格[“查询”][“电子邮件”]。值;
var atpos=x.indexOf(“@”);
var dotpos=x.lastIndexOf(“.”);
如果(atpos<1 | | dotpos=x.length){
$('#email').removeClass('custom').addClass('error');
$('.email error').show();
//返回false;

}否则,如果(atpos>1 | | dotpos>atpos+2 | | dotpos+2据我所知,您的函数以该块结束,无条件:

$('.error-banner').effect("pulsate", {
  times: 2
}, 1000);
return false;
也许可以改成:

var valid = true;

// in your error handling conditionals, set valid to false:
if(x == null || x == "" || x == "Phone Number") {
    $('#phone').removeClass('custom').addClass('error');
    $('.phone-error').show();
    valid = false;
} 

...

if (!valid) {
  $('.error-banner').effect("pulsate", {
    times: 2
  }, 1000);
}
return valid;

我必须同意大多数评论者的看法,即您的方法仍有很大的改进余地。

好吧,函数总是返回
false
。您认为它还能做什么呢?另外,jQuery与
document.forms
的奇怪混合……很奇怪。听说过数据结构和代码可读性吗?我知道但是我不知道该把
return true
放在哪里,我对Javascript和jQuery非常陌生,现在我只是在使用我所知道的东西,所以你的代码很有魅力!非常感谢。(4分钟后接受回答)