2016-08-02 166 views
0

嗨我是jQuery的新手,並想了解如何使用驗證功能與RegExp相結合來檢查輸入是否正確,但我不確定這是否是最好的方法。jquery驗證域自定義方法

正確的輸入應該有這樣的格式:

integer.string.domain(例如:1.myFirstDomain.com或22.mySecondDomain.someInfo.org)

我已經試圖開始了只使用下面代碼中的數字來驗證函數,只是爲了看看是否可以使用簡單的RegExp來工作,但它不起作用,並且我不確定是否驗證包括數字和字符串在內的輸入的最佳方式這種特殊的格式。

$(document).ready(function() { 
 
    $("#testform").click("submit").validate({ 
 
    rules: { 
 
     input: { 
 
     numberInput: true 
 
     } 
 
    }, 
 
    messages: { 
 
     input: "Please enter a number" 
 
    } 
 

 
    }); 
 
}); 
 

 
$.validator.addMethod('numberInput', function(value) { 
 
    return /^[0-9]+$/.test(value); 
 
}, 'Please only enter numeric values (0-9)');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 
 
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.min.js"></script> 
 

 
<form id="testform"> 
 
    <p>InputTest</p> 
 
    <input id="input" placeholder="Input domain here."> 
 
    <br> 
 
    <button id="submit" type="submit">Submit</button> 
 
    <br> 
 
</form>

+0

'$( 「#TESTFORM」)。驗證({' –

回答

0

這裏有2個問題。

  1. 沒有必要調用click('submit'),這將導致如下的錯誤jquery-1.11.3.js:4670 Uncaught TypeError: ((jQuery.event.special[handleObj.origType] || (intermediate value)).handle || handleObj.handler).apply is not a function按鈕被點擊
  2. Validator框架使用元素名稱來應用這些規則的時候,所以名稱添加到輸入

$(document).ready(function() { 
 
    $("#testform").validate({ 
 
    rules: { 
 
     input: { 
 
     numberInput: true 
 
     } 
 
    }, 
 
    messages: { 
 
     input: "Please enter a number" 
 
    } 
 

 
    }); 
 
}); 
 

 
$.validator.addMethod('numberInput', function(value) { 
 
    return /^[0-9]+$/.test(value); 
 
}, 'Please only enter numeric values (0-9)');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 
 
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.min.js"></script> 
 

 
<form id="testform"> 
 
    <p>InputTest</p> 
 
    <input id="input" name="input" placeholder="Input domain here."> 
 
    <br> 
 
    <button id="submit-btn" type="submit">Submit</button> 
 
    <br> 
 
</form>

+0

謝謝!它禾現在。我之前沒有問過關於stackoverflow的問題,所以請原諒我的無知,如果我正如我在這個問題中描述的那樣,使用RegExp創建一個關於如何格式化輸入的新問題會更好嗎? – BaconPancakes