2012-04-30 89 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上寫另一個問題呢? –