2014-03-30 74 views
-1

我有一個測驗,我需要添加一些驗證到confirm email address字段,基本上它只需要匹配上面的字段中給出的電子郵件地址。我正在使用下面的JavaScript,我可以在這裏添加一些東西,以確保電子郵件匹配?JQuery驗證 - 確認電子郵件表單驗證

if ($('#mtQuiz').length > 0) { 
    $('#myQuiz').validate({ 
     errorElement: "em", 
     errorContainer: $("#warning"), 
     rules: { 
      'entry[first_name]':   'required', 
      'entry[last_name]':  'required', 
      'entry[email]': { 
       required: true, 
       email: true 
      }, 
      'entry[confirm_email]': { 
       required: true, 
       email: true 
      } 
     }, 
     messages: { 
      'entry[first_name]': 'Please enter first name', 
      'entry[last_name]': 'Please enter last name', 
      'entry[email]': { 
       required: ' Please enter a valid email address', 
       minlength: 'Not a valid email address' 
      }, 
      'entry[confirm_email]': { 
       required: ' Please make sure email matches above', 
       minlength: 'Does not match above email address' 
      } 
         } 
    }); 
} 
+1

**有沒有很好的理由讓你發佈[這個問題的第二個版本(http://stackoverflow.com/questions/22758997/email-validation -using-jquery-emails-matching)今天。**請不要發佈重複...總是編輯/刪除或跟蹤您的第一個問題。 – Sparky

回答

2

看看equalTo方法。

$('#myQuiz').validate({ 
    ... 
    rules: { 
    ... 
    'entry[confirm_email]': { 
     equalTo: "entry[email]" 
    } 
    } 
}); 
+0

謝謝,請看看! –

6
if ($('#mtQuiz').length > 0) { // <- unnecessary and superfluous 
    $('#myQuiz').validate({ 
     // options, etc. 
    }); 
} 

你使用jQuery,所以你並不需要檢查的#myQuiz存在與if ($('#mtQuiz').length > 0)。如果#myQuiz元素不存在,jQuery會簡單地忽略它,沒有任何錯誤。

這是所有你需要做的......

$('#myQuiz').validate({ // initialize the plugin 
    // options, etc. 
}); 

要匹配其他字段的值,只需使用the equalTo rule。在使用equalTo規則時,不需要重複任何其他規則,因爲equalTo將始終強制該值匹配已遵循其規則的主字段的值。

$('#myQuiz').validate({ 
    // options, etc., 
    rules: { 
     'entry[first_name]': 'required', 
     'entry[last_name]': 'required', 
     'entry[email]': { 
      required: true, 
      email: true 
     }, 
     'entry[confirm_email]': { 
      //required: true, // <- redundant, not needed with 'equalTo' 
      //email: true  // <- redundant, not needed with 'equalTo' 
      equalTo: '[name="entry[email]"]' // <- any valid jQuery selector 
     } 
    }, 
    // other options, etc. 
}); 

DEMO:http://jsfiddle.net/JCY2E/