2011-03-31 33 views
0

我想使用Ben Keen的RSV Jquery插件來驗證通過註冊表單提交的電子郵件地址:只允許用戶提交一個e郵件地址屬於特定的域。我認爲使用插件的reg_exp規則可能是一個解決方案,但我無法讓它工作。 我是一個jquery新手,所以我可能會犯一些非常愚蠢的錯誤:有人能指點我正確的方向嗎?使用RSV jquery插件驗證來自特定域的電子郵件

這裏是我想要使用的代碼,改編自敏銳的演示之一:

<script type="text/javascript"> 

    // a custom onComplete handler to prevent form submits for the demo 
    function myOnComplete() 
    { 
    alert("The form validates! (normally, it would submit the form here)."); 
    return false; 
    } 

    var rules = []; 

// standard form fields 

rules.push("reg_exp,reg_exp_field1,/@mydomain\.tld$/gi,Please enter your valid e-mail (e.g. \"@mydomain\.tld\")"); 


$(document).ready(function() { 
    $("#demo_form3").RSV({ 
    onCompleteHandler: myOnComplete, 
    rules: rules 
    }); 
}); 
</script> 

使用上面的代碼,當我提出一個有效的電子郵件地址,即以@結尾的地址mydomain.tld我總是收到警報。我究竟做錯了什麼?

回答

0

我已經寫了很多代碼行的RSV。它非常強大。 但是,您使用不正確。

  1. 您應該定義一個自定義函數,而不是其默認的電子郵件格式驗證方法。
  2. 您應該將上述「定製函數」放入驗證數組中,但不要將其放入「myOnComplete」方法中,只有在所有驗證都通過時纔會調用此方法。
  3. 在RSV中,自定義函數只能返回「true」(通過時)或「數組」(失敗時)。但在上面的示例中,您實現爲「返回false」。

無論如何,你已經用另一種方式解決了你的問題。 :-) 那很好。

+0

嗨四維,謝謝你指出我的錯誤。當涉及到jQuery/JavaScript我是一個完整的新手,我正在通過試驗和錯誤學習。 Thanx回覆我的問題:-) – kikaweb 2011-08-12 15:24:34

0

沒關係,在進一步研究之後,我發現了一個更簡單的解決方案:遵循this forum thread的建議,我使用了jqueryValidate而不是rsv插件並添加了自定義驗證方法。 我在這裏發佈我的解決方案,也許它可能對像我這樣的其他jquery新手有用!

$(document).ready(function(){ 

$.validator.addMethod("gmail", function(value, element) { 
    return this.optional(element) || /^[\w-\.][email protected](gmail\.com|yahoo\.com)+$/i.test(value); 
}, "Email address must contain gmail or yahoo addresses."); 

    $("#register_member_form").validate(); 
}); 
相關問題