2012-09-13 33 views
0

根據文檔 - 比如它 - 您可以通過使用屬性來指定需要輸入元素參數的驗證。它說這是推薦的方法。像這樣:使用屬性進行Bassistance驗證。語法是什麼?

<input type="password" minlength="6" maxlength="50"/> 

好吧,那很簡單。現在你如何使用html屬性指定(例如)一個範圍?

<input type="number" range="[5, 50]"/> 

不,這是行不通的。沒有括號,花括號,花括號和括號或其任何組合。但是,這部作品在一個完全意想不到的方式:

<input type="number" range="53"/> 

- 它吐出來的是錯誤信息「次數必須在5和3之間」

是否有人可以告訴我這樣做的正確的語法?

注意:這是一個示例。我知道我可以通過使用

<input type="number" min="5" max="50"/> 

解決這方面的問題我在尋找關於如何使用jQuery的驗證,構建一個複雜的驗證規則更普遍的答案屬性API。

謝謝!

編輯

這裏是另外一個例子。你如何使用「首選」屬性語法來做到這一點?

$('form').validate({ 
    rules: { 
     rt: { 
      required: function(element) { 
      return $("#age").val() < 13; 
      } 
     } 
    } 
}); 

下不起作用:

<form> 
    <input type="text" id="age" name="age"/> 
    <input type="text" id="rt" name="rt" required="function(element) { return $('#age').val() < 13;}"/> 

    <input type="text" id="tabcatcher"/> 
    <input type="submit"/> 
</form> 

播放具有以下的jsfiddle:

http://jsfiddle.net/GKNZF/

+0

沒有得到你的觀點。 ''?你爲什麼還要找其他東西? – gdoron

+0

在問題 –

+0

中增加了另一個示例也許問題的更好的重述是 - 任何人都可以聲明用於可以通過屬性調用的驗證規則的語法,還可以聲明哪些驗證規則不能通過屬性調用?我將把這個聲明作爲文檔補丁提交給項目。 –

回答

1

這是在插件中的已知問題/錯誤,如報告here 。基本上,該插件正在考慮將53作爲兩位數的數組,其中5作爲最小值,而3作爲最大值。

爲了解決這個問題,你需要使用下面的補丁:

// Patch by Chris Tierney (CF Webtools 7/13/2011) 
// Issue logged at https://github.com/jzaefferer/jquery-validation/issues/112 
$.each(['rangelength', 'range'], function() { 
    if (typeof rules[this] == 'string') { 
     rules[this] = rules[this].split(","); 
    } 
    if (rules[this]) { 
     rules[this] = [Number(rules[this][0]), Number(rules[this][1])]; 
    } 
}); 
+0

好的 - 我看到這也被固定在一個實現html5數據屬性的pull請求中,這些屬性很快就會登陸。但是,這並不能回答「如何使用jquery-validate attributes API構建複雜的驗證規則」這個更廣泛的問題。 –

3

在更一般的情況下,沒有關於任何文檔,其驗證可以通過添加一個類中調用,它可以通過添加調用一個屬性和一個參數/表達式/函數,並且不能通過屬性調用。從代碼,這裏是可以添加他們的名字的類列表來調用檢驗列表:

需要
電子郵件
網址
日期
dateISO

數字
的信用卡

我知道的驗證可以通過屬性調用:

分鐘
最大
MINLENGTH
的maxlength
equalTo

未知。有沒有做這些工作所需的語法文件,也沒有文件說,他們不工作:

與表達所需要回調
需要
遠程

不工作,由於長期存在的bug :

範圍
rangelength

+1

謝謝,這個清單對我很有幫助。 –

相關問題