2014-12-02 250 views
0

Im和我想補充一點,輸入文本不能包含「.COM」jQuery驗證addMethod使用JQuery驗證驗證定製方法

林試過的方法:

//.com Validator 
    $.validator.addMethod('dotcom', function(value, element) { 
     return this.optional(element) || (!value.match(/[.com]/) && value.match(/[.com]/)); 
    }, 
    dotcom); 

但是這並未」工作,任何建議要做到這一點?謝謝

回答

1

它看起來像你的正則表達式測試是錯誤的。嘗試

var dotcom = 'Value cannot contain `.com`' 
 
$.validator.addMethod('dotcom', function(value, element) { 
 
    return this.optional(element) || !/\.com/.test(value); 
 
}, dotcom); 
 

 

 
$('form').validate({ 
 
    rules: { 
 
    site: { 
 
     dotcom: true 
 
    } 
 
    } 
 
}) 
 

 
$('button').click(function() { 
 
    $('form').valid(); 
 
    return false; 
 
})
<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.1.js"></script> 
 
<script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.12.0/jquery.validate.js"></script> 
 
<script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.12.0/additional-methods.js"></script> 
 

 
<form> 
 
    <div> 
 
    <input name="site" /> 
 
    </div> 
 
    <button>Save</button> 
 
</form>

+0

非常感謝!這是非常有用的= D – TheSmile 2014-12-02 03:22:11

+0

如果我想輸入必須有「com」。又怎樣 ?我試過'/ \ com ./。test(value);'但是不起作用 – TheSmile 2014-12-02 04:33:33

+0

@TheSmile嘗試'返回this.optional(element)||/\。com/.test(value);' – 2014-12-02 04:37:56