2015-10-06 67 views
1

我在JQuery中构建一个小型表单验证器。现在我的输出有问题。如果语句不起作用,JQuery表单验证

$(function() { 
    $('.register').submit(function (event) { 
     $('.form-group').removeClass('has-error'); // remove the error class 
     $('.help-form').remove(); 
     var lengthp = $('input[name=password]').val().length; 
     //alert(length); 
     var error = new String(); 
     if ($('input[name=password2]').val() != $('input[name=password]').val()) { 
      error['pwd'] = "Die Passwörter stimmen nicht überein!"; 
     } 
     if (lengthp < 7) { 
      error['length'] = "Das Passwort muss mindestens 8 Zeichen lang sein."; 
     } 
     if (error) { 
      // add the error class to show red input 
      if (error['pwd']) { 
       $('#passgroup2').addClass('has-error'); 
       $("#passgroup2 > div").append('<span class="help-block help-form">' + error['pwd'] + '</span>'); 
      } 
      if (error['length']) { 
       $('#passgroup').addClass('has-error'); 
       $("#passgroup > div").append('<span class="help-block help-form">' + error['length'] + '</span>'); 
      } 
     } 
     //alert($('input[name=password]').val())); 
     event.preventDefault(); 
    }); 

}); 

if语句if (error['pwd']) {工作正常,但声明if (error['length']) {不工作。

有没有人有一个想法如何解决它? 谢谢!!!

+0

'变种error'必须是'object'吧? – Rayon

+0

我不知道为什么'if(error ['pwd'])'工作...为什么你使用'String'作为数组? Sting是一个文本(字符数组),但不是数据的数组。改用'var error = []'或'var error = {}'。 – Ifch0o1

+0

谢谢@Guillermo的回答工作正常:) – tschaefermedia

回答

1

尝试对你的代码进行如下修改,如果错误是一个对象,事情会变得更容易,代码将更容易理解,我不知道你为什么会错误成为一个字符串。希望能帮助到你。

//Error object 
    var error = {}; 

if ($('input[name=password2]').val() != $('input[name=password]').val()) {  
    //setting pwd error property 
    error.pwd = "Die Passwörter stimmen nicht überein!"; 
} 

if (lengthp < 7) { 
    //setting length error property 
    error.length = "Das Passwort muss mindestens 8 Zeichen lang sein."; 
} 

//Getting rid of this if because as it is defined, it will be always truthy 
//if (error) { 
    // add the error class to show red input 
    if (typeof error.pwd !== "undefined") { 
     $('#passgroup2').addClass('has-error'); 
     $("#passgroup2 > div").append('<span class="help-block help-form">' + error['pwd'] + '</span>'); 
    } 

    if (typeof error.length !== "undefined") { 
     $('#passgroup').addClass('has-error'); 
     $("#passgroup > div").append('<span class="help-block help-form">' + error['length'] + '</span>'); 
    } 
//}