如果语句不起作用,JQuery表单验证

时间:2015-10-06 14:39:30

标签: javascript jquery forms validation

我在JQuery中构建了一个小型表单验证器。现在我的输出有问题。

del

if语句 $(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 (error['pwd']) {不起作用。

有没有人知道如何修复它? 谢谢!!!

1 个答案:

答案 0 :(得分: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>');
    }
 //}