2011-09-09 40 views
-1

我使用了輔助表單驗證。我有幾個只需要數字的字段,但是不包括像$,(,), - ,*等符號被允許的符號,我需要這些字段用於價格和電話號碼等字段。任何人都知道一個方法或插件或東西來解決這個問題?僅限數字字段允許使用符號嗎?

UPDATE

基本上,我需要說「不文本允許」,並允許符號和數字功能。

另一個更新

發現,這並不讓單獨的文本的功能。但如果有符號,它也允許使用文本。任何方式來限制任何文字?

jQuery.validator.addMethod(
    "symbols", 
    function(value,element){ 
    var hNum=/[^a-z\s-]/; 
    var inp=jQuery.trim(element.value).toLowerCase(); 
    if(hNum.test(inp)) { return true; 
    } 
    else return false; 
    }, 
    "Number and symbols are only allowed." 
); 

回答

1

根據他們的文檔,還有已經validation methods可以用於執行驗證:decimal numbersdigitsphone numbers

* *編輯:在這種情況下,它聽起來像你想創建一個自定義的驗證。有一種叫做addMethod的方法,它添加了一個自定義驗證和一個像daGrevis創建的回調函數。

例子:

jQuery.validator.addMethod("isdigit", function(value, element) { 
     return /[\d()-.\$]/.test(value); 
    }, "Numbers and symbols only allowed" 
); 
+0

這些都不需要我做什麼..十進制數字和數字不允許使用$符號,電話號碼需要一個完整的號碼,而病人有電話分機。 (基本上我需要的東西只是說沒有文字允許) –

+0

你不明白嗎?!您需要編寫該功能!使用我的函數檢查值(例如),如果驗證失敗,以某種方式將其顯示給最終用戶(在最簡單的情況下爲'alert()')! :/ – daGrevis

+0

我使用了輔助插件方法來創建一個新方法,該方法可以附加到將通過插件本身執行驗證和顯示消息的字段。 – CAbbott

0

那麼,你可能會嘗試完全不同的方法來驗證。

我個人最喜歡使用HTML5的驗證,並讓所有的瀏覽器jive /擴展其功能。

http://ericleads.com/h5validate/

+0

我不知道這是爲什麼下投票。應該開始考慮HTML5解決方案。 –

+0

謝謝喬爾。欣賞它。我想我會採取我未來的驗證方式並回家。 –

2

我寫了一點功能...

function is_digit(value) { 

    return String(value).search(/^\s*\d+\s*$/) != -1; 

} 

如你所願,當然,你可以修改它。 :)

編輯:

下面是其他有用的REG-EXE文件:

  • 是整數:/^\s*(\+|-)?\d+\s*$/
  • 是十進制數字:/^\s*(\+|-)?((\d+(\.\d+)?)|(\.\d+))\s*$/
+0

太棒了!但是我把這個放在哪裏?在實際的驗證腳本中?在我自己的網頁上? –

+0

只需使用該函數檢查想要的值...'is_digit(value)'。它會返回布爾值('true' /'false'),因此,通過'if/else'構造,您可以輕鬆檢查您的值是否爲數字。另外,你可以檢查指定元素中的任何輸入字符,如果該函數返回'false',則不允許將它們添加到'input' /'textarea'/whatever中。附:只要不要忘記在服務器端檢查一下!:) – daGrevis

+0

對不起,但我仍然有點困惑(不是一個jQuery的人)我在哪裏插入這個功能(在jass腳本本身?),我會在哪裏調用它? –

相關問題