2015-10-06 70 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>'); 
    } 
//}