提交 | 用户 | 时间
|
58d006
|
1 |
<!DOCTYPE html> |
A |
2 |
<html id="html"> |
|
3 |
<head> |
|
4 |
<title>jQuery - Validation Test Suite</title> |
|
5 |
<link rel="stylesheet" href="qunit/qunit.css" /> |
|
6 |
<script src="jquery.js"></script> |
|
7 |
<script src="../lib/jquery.form.js"></script> |
|
8 |
<script src="qunit/qunit.js"></script> |
|
9 |
<script src="../lib/jquery.mockjax.js"></script> |
|
10 |
<script src="../jquery.validate.js"></script> |
|
11 |
<script src="../additional-methods.js"></script> |
|
12 |
<script src="test.js"></script> |
|
13 |
<script src="rules.js"></script> |
|
14 |
<script src="messages.js"></script> |
|
15 |
<script src="methods.js"></script> |
|
16 |
</head> |
|
17 |
<body id="body"> |
|
18 |
<h1 id="qunit-header"> |
|
19 |
<a href="http://bassistance.de/jquery-plugins/jquery-plugin-validation/">jQuery Validation Plugin</a> Test Suite |
|
20 |
<a href="?jquery=1.6.4">jQuery 1.6.4</a> |
|
21 |
<a href="?jquery=1.7.2">jQuery 1.7.2</a> |
|
22 |
<a href="?jquery=1.8.3">jQuery 1.8.3</a> |
|
23 |
<a href="?jquery=1.9.0">jQuery 1.9.0</a> |
|
24 |
<a href="?jquery=git">jQuery Latest (git)</a> |
|
25 |
</h1> |
|
26 |
<div> |
|
27 |
</div> |
|
28 |
<h2 id="qunit-banner"></h2> |
|
29 |
<div id="qunit-testrunner-toolbar"></div> |
|
30 |
<h2 id="qunit-userAgent"></h2> |
|
31 |
<ol id="qunit-tests"></ol> |
|
32 |
|
|
33 |
<!-- Test HTML --> |
|
34 |
<div id="other" style="display:none;"> |
|
35 |
<input type="password" name="pw1" id="pw1" value="engfeh" /> |
|
36 |
<input type="password" name="pw2" id="pw2" value="" /> |
|
37 |
</div> |
|
38 |
<div id="qunit-fixture"> |
|
39 |
<p id="firstp">See <a id="simon1" href="http://simon.incutio.com/archive/2003/03/25/#getElementsBySelector" rel="bookmark">this blog entry</a> for more information.</p> |
|
40 |
<p id="ap"> |
|
41 |
Here are some links in a normal paragraph: <a id="google" href="http://www.google.com/" title="Google!">Google</a>, |
|
42 |
<a id="groups" href="http://groups.google.com/">Google Groups</a>. |
|
43 |
This link has <code><a href="#" id="anchor1">class="blog"</a></code>: |
|
44 |
<a href="http://diveintomark.org/" class="blog" hreflang="en" id="mark">diveintomark</a> |
|
45 |
|
|
46 |
</p> |
|
47 |
<div id="foo"> |
|
48 |
<p id="sndp">Everything inside the red border is inside a div with <code>id="foo"</code>.</p> |
|
49 |
<p lang="en" id="en">This is a normal link: <a id="yahoo" href="http://www.yahoo.com/" class="blogTest">Yahoo</a></p> |
|
50 |
<p id="sap">This link has <code><a href="#2" id="anchor2">class="blog"</a></code>: <a href="http://simon.incutio.com/" class="blog link" id="simon">Simon Willison's Weblog</a></p> |
|
51 |
|
|
52 |
</div> |
|
53 |
<p id="first">Try them out:</p> |
|
54 |
<ul id="firstUL"></ul> |
|
55 |
<ol id="empty"></ol> |
|
56 |
|
|
57 |
<form id="testForm1"> |
|
58 |
<input type="text" data-rule-required="true" data-rule-minlength="2" title="buga" name="firstname" id="firstname" /> |
|
59 |
<label id="errorFirstname" for="firstname" class="error">error for firstname</label> |
|
60 |
<input type="text" data-rule-required="true" title="buga" name="lastname" id="lastname" /> |
|
61 |
<input type="text" data-rule-required="true" title="something" name="something" id="something" value="something" /> |
|
62 |
</form> |
|
63 |
|
|
64 |
<form id="testForm1clean"> |
|
65 |
<input title="buga" name="firstname" id="firstnamec" /> |
|
66 |
<label id="errorFirstname" for="firstname" class="error">error for firstname</label> |
|
67 |
<input title="buga" name="lastname" id="lastnamec" /> |
|
68 |
<input name="username" id="usernamec" /> |
|
69 |
</form> |
|
70 |
|
|
71 |
<form id="userForm"> |
|
72 |
<input type="text" data-rule-required="true" name="username" id="username" /> |
|
73 |
<input type="submit" name="submitButton" value="submitButtonValue" /> |
|
74 |
</form> |
|
75 |
|
|
76 |
<form id="signupForm" action="form.php"> |
|
77 |
<input id="user" name="user" title="Please enter your username (at least 3 characters)" data-rule-required="true" data-rule-minlength="3" /> |
|
78 |
<input type="password" name="password" id="password" data-rule-required="true" data-rule-minlength="5" /> |
|
79 |
</form> |
|
80 |
|
|
81 |
<form id="testForm2"> |
|
82 |
<input data-rule-required="true" type="radio" name="agree" id="agb" /> |
|
83 |
<label for="agree" id="agreeLabel" class="xerror">error for agb</label> |
|
84 |
</form> |
|
85 |
|
|
86 |
<form id="testForm3"> |
|
87 |
<select data-rule-required="true" name="meal" id="meal" > |
|
88 |
<option value="">Please select...</option> |
|
89 |
<option value="1">Food</option> |
|
90 |
<option value="2">Milk</option> |
|
91 |
</select> |
|
92 |
</form> |
|
93 |
<div class="error" id="errorContainer"> |
|
94 |
<ul> |
|
95 |
<li class="error" id="errorWrapper"> |
|
96 |
<label for="meal" id="mealLabel" class="error">error for meal</label> |
|
97 |
</li> |
|
98 |
</ul> |
|
99 |
</div> |
|
100 |
|
|
101 |
<form id="testForm4"> |
|
102 |
<input data-rule-foo="true" name="f1" id="f1" /> |
|
103 |
<input data-rule-bar="true" name="f2" id="f2" /> |
|
104 |
</form> |
|
105 |
|
|
106 |
<form id="testForm5"> |
|
107 |
<input data-rule-equalto="#x2" value="x" name="x1" id="x1" /> |
|
108 |
<input data-rule-equalto="#x1" value="y" name="x2" id="x2" /> |
|
109 |
</form> |
|
110 |
|
|
111 |
<form id="testForm6"> |
|
112 |
<input data-rule-required="true" data-rule-minlength="2" type="checkbox" name="check" id="form6check1" /> |
|
113 |
<input type="checkbox" name="check" id="form6check2" /> |
|
114 |
</form> |
|
115 |
|
|
116 |
<form id="testForm7"> |
|
117 |
<select data-rule-required="true" data-rule-minlength="2" name="selectf7" id="selectf7" multiple="multiple"> |
|
118 |
<option id="optionxa" value="0">0</option> |
|
119 |
<option id="optionxb" value="1">1</option> |
|
120 |
<option id="optionxc" value="2">2</option> |
|
121 |
<option id="optionxd" value="3">3</option> |
|
122 |
</select> |
|
123 |
</form> |
|
124 |
|
|
125 |
<form id="dateRangeForm"> |
|
126 |
<input id="fromDate" name="fromDate" class="requiredDateRange" value="x" /> |
|
127 |
<input id="toDate" name="toDate" class="requiredDateRange" value="y" /> |
|
128 |
<span class="errorContainer"></span> |
|
129 |
</form> |
|
130 |
|
|
131 |
<form id="testForm8"> |
|
132 |
<input id="form8input" data-rule-required="true" data-rule-number="true" data-rule-rangelength="2,8" name="abc" /> |
|
133 |
<input type="radio" name="radio1"/> |
|
134 |
</form> |
|
135 |
|
|
136 |
<form id="testForm9"> |
|
137 |
<input id="testEmail9" data-rule-required="true" data-rule-email="true" data-msg-required="required" data-msg-email="email" /> |
|
138 |
</form> |
|
139 |
|
|
140 |
<form id="testForm10"> |
|
141 |
<input type="radio" name="testForm10Radio" value="1" id="testForm10Radio1" /> |
|
142 |
<input type="radio" name="testForm10Radio" value="2" id="testForm10Radio2" /> |
|
143 |
</form> |
|
144 |
|
|
145 |
<form id="testForm11"> |
|
146 |
<!-- HTML5 --> |
|
147 |
<input required type="text" name="testForm11Text" id="testForm11text1" /> |
|
148 |
</form> |
|
149 |
|
|
150 |
<form id="testForm12"> |
|
151 |
<!-- empty "type" attribute --> |
|
152 |
<input name="testForm12text" id="testForm12text" data-rule-required="true" /> |
|
153 |
</form> |
|
154 |
|
|
155 |
<form id="dataMessages"> |
|
156 |
<input name="dataMessagesName" id="dataMessagesName" class="required" data-msg-required="You must enter a value here" /> |
|
157 |
</form> |
|
158 |
|
|
159 |
<div id="simplecontainer"> |
|
160 |
<h3></h3> |
|
161 |
</div> |
|
162 |
|
|
163 |
<div id="container" style="min-height:1px"></div> |
|
164 |
|
|
165 |
<ol id="labelcontainer"></ol> |
|
166 |
|
|
167 |
<form id="elementsOrder"> |
|
168 |
<select class="required" name="order1" id="order1"><option value="">none</option></select> |
|
169 |
<input class="required" name="order2" id="order2"/> |
|
170 |
<input class="required" name="order3" type="checkbox" id="order3"/> |
|
171 |
<input class="required" name="order4" id="order4"/> |
|
172 |
<input class="required" name="order5" type="radio" id="order5"/> |
|
173 |
<input class="required" name="order6" id="order6"/> |
|
174 |
<ul id="orderContainer"> |
|
175 |
</ul> |
|
176 |
</form> |
|
177 |
|
|
178 |
<form id="form" action="formaction"> |
|
179 |
<input type="text" name="action" value="Test" id="text1"/> |
|
180 |
<input type="text" name="text2" value=" " id="text1b"/> |
|
181 |
<input type="text" name="text2" value="T " id="text1c"/> |
|
182 |
<input type="text" name="text2" value="T" id="text2"/> |
|
183 |
<input type="text" name="text2" value="TestTestTest" id="text3"/> |
|
184 |
|
|
185 |
<input type="text" name="action" value="0" id="value1"/> |
|
186 |
<input type="text" name="text2" value="10" id="value2"/> |
|
187 |
<input type="text" name="text2" value="1000" id="value3"/> |
|
188 |
|
|
189 |
<input type="radio" name="radio1" id="radio1"/> |
|
190 |
<input type="radio" name="radio1" id="radio1a"/> |
|
191 |
<input type="radio" name="radio2" id="radio2" checked="checked"/> |
|
192 |
<input type="radio" name="radio" id="radio3"/> |
|
193 |
<input type="radio" name="radio" id="radio4" checked="checked"/> |
|
194 |
|
|
195 |
<input type="checkbox" name="check" id="check1" checked="checked"/> |
|
196 |
<input type="checkbox" name="check" id="check1b" /> |
|
197 |
|
|
198 |
<input type="checkbox" name="check2" id="check2"/> |
|
199 |
|
|
200 |
<input type="checkbox" name="check3" id="check3" checked="checked"/> |
|
201 |
<input type="checkbox" name="check3" checked="checked"/> |
|
202 |
<input type="checkbox" name="check3" checked="checked"/> |
|
203 |
<input type="checkbox" name="check3" checked="checked"/> |
|
204 |
<input type="checkbox" name="check3" checked="checked"/> |
|
205 |
|
|
206 |
<input type="hidden" name="hidden" id="hidden1"/> |
|
207 |
<input type="text" style="display:none;" name="foo[bar]" id="hidden2"/> |
|
208 |
|
|
209 |
<input type="text" readonly="readonly" id="name" name="name" value="name" /> |
|
210 |
|
|
211 |
<button name="button">Button</button> |
|
212 |
|
|
213 |
<textarea id="area1" name="area1">foobar</textarea> |
|
214 |
|
|
215 |
|
|
216 |
<textarea id="area2" name="area2"></textarea> |
|
217 |
|
|
218 |
<select name="select1" id="select1"> |
|
219 |
<option id="option1a" value="">Nothing</option> |
|
220 |
<option id="option1b" value="1">1</option> |
|
221 |
<option id="option1c" value="2">2</option> |
|
222 |
<option id="option1d" value="3">3</option> |
|
223 |
</select> |
|
224 |
<select name="select2" id="select2"> |
|
225 |
<option id="option2a" value="">Nothing</option> |
|
226 |
<option id="option2b" value="1">1</option> |
|
227 |
<option id="option2c" value="2">2</option> |
|
228 |
<option id="option2d" selected="selected" value="3">3</option> |
|
229 |
</select> |
|
230 |
<select name="select3" id="select3" multiple="multiple"> |
|
231 |
<option id="option3a" value="">Nothing</option> |
|
232 |
<option id="option3b" selected="selected" value="1">1</option> |
|
233 |
<option id="option3c" selected="selected" value="2">2</option> |
|
234 |
<option id="option3d" value="3">3</option> |
|
235 |
</select> |
|
236 |
<select name="select4" id="select4" multiple="multiple"> |
|
237 |
<option id="option4a" selected="selected" value="1">1</option> |
|
238 |
<option id="option4b" selected="selected" value="2">2</option> |
|
239 |
<option id="option4c" selected="selected" value="3">3</option> |
|
240 |
<option id="option4d" selected="selected" value="4">4</option> |
|
241 |
<option id="option4e" selected="selected" value="5">5</option> |
|
242 |
</select> |
|
243 |
<select name="select5" id="select5" multiple="multiple"> |
|
244 |
<option id="option5a" value="0">0</option> |
|
245 |
<option id="option5b" value="1">1</option> |
|
246 |
<option id="option5c" value="2">2</option> |
|
247 |
<option id="option5d" value="3">3</option> |
|
248 |
</select> |
|
249 |
</form> |
|
250 |
|
|
251 |
<form id="v2"> |
|
252 |
<input id="v2-i1" name="v2-i1" class="required" /> |
|
253 |
<input id="v2-i2" name="v2-i2" class="required email" /> |
|
254 |
<input id="v2-i3" name="v2-i3" class="url" /> |
|
255 |
<input id="v2-i4" name="v2-i4" class="required" minlength="2" /> |
|
256 |
<input id="v2-i5" name="v2-i5" class="required" minlength="2" maxlength="5" customMethod1="123" /> |
|
257 |
<input id="v2-i6" name="v2-i6" class="required customMethod2" data-rule-maxlength="5" data-rule-minlength="2" /> |
|
258 |
<input id="v2-i7" name="v2-i7" /> |
|
259 |
</form> |
|
260 |
|
|
261 |
<form id="checkables"> |
|
262 |
<input type="checkbox" id="checkable1" name="checkablesgroup" class="required" /> |
|
263 |
<input type="checkbox" id="checkable2" name="checkablesgroup" /> |
|
264 |
<input type="checkbox" id="checkable3" name="checkablesgroup" /> |
|
265 |
</form> |
|
266 |
|
|
267 |
<form id="subformRequired"> |
|
268 |
<div class="billingAddressControl"> |
|
269 |
<input type="checkbox" id="bill_to_co" name="bill_to_co" class="toggleCheck" checked="checked" style="width: auto;" tabindex="1" /> |
|
270 |
<label for="bill_to_co" style="cursor:pointer">Same as Company Address</label> |
|
271 |
</div> |
|
272 |
<div id="subform"> |
|
273 |
<input maxlength="40" class="billingRequired" name="bill_first_name" size="20" type="text" tabindex="2" value="" /> |
|
274 |
</div> |
|
275 |
<input id="co_name" class="required" maxlength="40" name="co_name" size="20" type="text" tabindex="1" value="" /> |
|
276 |
</form> |
|
277 |
|
|
278 |
<form id="withTitle"> |
|
279 |
<input class="required" name="hastitle" type="text" title="fromtitle" /> |
|
280 |
</form> |
|
281 |
|
|
282 |
<form id="ccform" method="get" action=""> |
|
283 |
<input id="cardnumber" name="cardnumber" /> |
|
284 |
</form> |
|
285 |
|
|
286 |
<form id="productInfo"> |
|
287 |
<input class="productInfo" name="partnumber"> |
|
288 |
<input class="productInfo" name="description"> |
|
289 |
<input class="productInfo" name="color"> |
|
290 |
<input class="productInfo" type="checkbox" name="discount" /> |
|
291 |
</form> |
|
292 |
|
|
293 |
<form id="updateLabel"> |
|
294 |
<input class="required" name="updateLabelInput" id="updateLabelInput" data-msg-required="You must enter a value here" /> |
|
295 |
<label id="targetLabel" class="error" for="updateLabelInput">Some server-side error</label> |
|
296 |
</form> |
|
297 |
|
|
298 |
<form id="rangesMinDateInvalid"> |
|
299 |
<input type="date" id="minDateInvalid" name="minDateInvalid" min="2012-12-21" value="2012-11-21"/> |
|
300 |
</form> |
|
301 |
<form id="ranges"> |
|
302 |
<input type="date" id="maxDateInvalid" ngame="maxDateInvalid" max="2012-12-21" value="2013-01-21"/> |
|
303 |
<input type="date" id="rangeDateInvalidGreater" name="rangeDateInvalidGreater" min="2012-11-21" max="2013-01-21" value="2013-02-21"/> |
|
304 |
<input type="date" id="rangeDateInvalidLess" name="rangeDateInvalidLess" min="2012-11-21" max="2013-01-21" value="2012-10-21"/> |
|
305 |
|
|
306 |
<input type="date" id="maxDateValid" name="maxDateValid" max="2013-01-21" value="2012-12-21"/> |
|
307 |
<input type="date" id="rangeDateValid" name="rangeDateValid" min="2012-11-21" max="2013-01-21" value="2012-12-21"/> |
|
308 |
|
|
309 |
<!-- input type text is not supposed to have min/max according to html5, |
|
310 |
but for backward compatibility with 1.10.0 we treat it as number. |
|
311 |
you can also use type="number", in which case the browser may also |
|
312 |
do validation, and mobile browsers may offer a numeric keypad to edit |
|
313 |
the value. |
|
314 |
Type absent is treated like type="text". |
|
315 |
--> |
|
316 |
<input type="text" id="rangeTextInvalidGreater" name="rangeTextInvalidGreater" min="50" max="200" value="1000"/> |
|
317 |
<input type="text" id="rangeTextInvalidLess" name="rangeTextInvalidLess" min="200" max="1000" value="50"/> |
|
318 |
<input id="rangeAbsentInvalidGreater" name="rangeAbsentInvalidGreater" min="50" max="200" value="1000"/> |
|
319 |
<input id="rangeAbsentInvalidLess" name="rangeAbsentInvalidLess" min="200" max="1000" value="50"/> |
|
320 |
|
|
321 |
<input type="text" id="rangeTextValid" name="rangeTextValid" min="50" max="1000" value="200"/> |
|
322 |
<input id="rangeAbsentValid" name="rangeTextValid" min="50" max="1000" value="200"/> |
|
323 |
|
|
324 |
<!-- ranges are like numbers in html5, except that browser is not required |
|
325 |
to demand an exact value. User interface could be a slider. |
|
326 |
--> |
|
327 |
<input type="range" id="rangeRangeValid" name="rangeRangeValid" min="50" max="1000" value="200"/> |
|
328 |
|
|
329 |
<input type="number" id="rangeNumberValid" name="rangeNumberValid" min="50" max="1000" value="200"/> |
|
330 |
<input type="number" id="rangeNumberInvalidGreater" name="rangeNumberInvalidGreater" min="50" max="200" value="1000"/> |
|
331 |
<input type="number" id="rangeNumberInvalidLess" name="rangeNumberInvalidLess" min="50" max="200" value="6"/> |
|
332 |
|
|
333 |
</form> |
|
334 |
<form id="rangeMinDateValid"> |
|
335 |
<input type="date" id="minDateValid" name="minDateValid" min="2012-11-21" value="2012-12-21"/> |
|
336 |
</form> |
|
337 |
|
|
338 |
<form id="bypassValidation"> |
|
339 |
<input type="text" required/> |
|
340 |
<input id="normalSubmit" type="submit" value="submit"/> |
|
341 |
<input id="bypassSubmitWithCancel" type="submit" class="cancel" value="bypass1"/> |
|
342 |
<input id="bypassSubmitWithNoValidate1" type="submit" formnovalidate value="bypass1"/> |
|
343 |
<input id="bypassSubmitWithNoValidate2" type="submit" formnovalidate="formnovalidate" value="bypass2"/> |
|
344 |
</form> |
|
345 |
</div> |
|
346 |
|
|
347 |
</body> |
|
348 |
</html> |