2012-04-30 33 views
0

我有下面的验证代码,它正确地突出显示我的表单中的所有问题区域如果第一个文本输入或菜单留空。jQuery空字段验证只检查第一次发生?

但是,如果您填写第一个文本输入并从第一个选择框中选择,则此验证可让您错误地通过。

我已经包括我的jquery搜索空文本字段和选择菜单..但如果我需要粘贴整个事情让我知道。

// create error flag 
var error = 0; 

// check required text fields for empty values, add class 'problem' to cells with inputs that have problems 
if (!$('#register-form .required input').val()) { 
    $('.required input:text[value=""]').parent().addClass("problem"); 
    error++; 
    console.log('errors: ' + error + '; required text input missing a value.') 
} 

// check required select menus for default selections, add class 'problem' to cells with select menus that have problems 
if (!$('#register-form .required select option:selected').val()) { 
    $('.required select option:selected[value=""]').parent().parent().addClass("problem"); 
    error++; 
    console.log('errors: ' + error + '; required select box missing a value.') 
} 

但是,如果我满足(仅)第一个文本输入或从所需的一组菜单中选择菜单,则此验证将失败。

我显然需要这样的验证检查每一个文本输入,并与一类细胞的每一种内.required

回答

0
$('#register-form .required').each(function() { 

    var $input = $('input[type="text"]', this), 
     $select = $('select', this); 

    if(!$.trim($input.val())) { 
    $input.parent().addClass("problem"); 
     error++; 
     console.log('errors: ' + error + '; required text input missing a value.') 

    } 

    if(!$select.val()) { 
     $select.parent().parent().addClass("problem"); 
     error++; 
     console.log('errors: ' + error + '; required select box missing a value.' 
    } 

}); 
+0

谢谢!自从发布我的问题以来,我一直致力于在每个必需的文本输入中使用.map()并选择。我很好奇,如果每个人都喜欢这样或那样的理由? –

+0

接受 - 仍然想知道这是否是最好的方法?你能说出地图与每个要求的字段验证吗?还有谁? –

+0

如果我需要验证是严格的不算字符,我是否需要在SO上写另一个问题呢? –