Used the patch from Alexander as the basis for a rewrite of the IE change event logic...
[jquery.git] / test / delegatetest.html
1 <html>\r
2     <head>\r
3         <script src='../dist/jquery.js' type='text/javascript'></script>\r
4         <style>\r
5         .red {\r
6             background-color: red;\r
7             border: solid 3px red;\r
8         }\r
9         </style>\r
10     </head>\r
11     <body>\r
12         <h2>Change Tests</h2>\r
13         <table>\r
14             <tr>\r
15                 <td>\r
16                 Change each:\r
17                 </td>\r
18                 <td>\r
19                 <select class='select_test'>\r
20                     <option value='one'>change me 1</option>\r
21                     <option value='two'>change me 2</option>\r
22                     <option value='three'>change me 3</option>\r
23                 </select>\r
24                 </td>\r
25                 <td>\r
26                 <select class='mselect_test' multiple="multiple">\r
27                     <option value='one'>change me 1</option>\r
28                     <option value='two'>change me 2</option>\r
29                     <option value='three'>change me 3</option>\r
30                 </select>\r
31                 </td>\r
32                 <td>\r
33                 <input type="checkbox" class="checkbox_test" name="mycheckbox" id="checkbox1"/>\r
34                 <label for="checkbox1">Checkbox 1</label><br/>\r
35                 <input type="checkbox" class="checkbox_test" name="mycheckbox" id="checkbox2"/>\r
36                 <label for="checkbox2">Checkbox 2</label>\r
37                 <input type="checkbox" class="checkbox_test" name="mycheckbox" id="checkbox3" disabled="disabled"/>\r
38                 <label for="checkbox3">Checkbox 3</label>\r
39                 </td>\r
40                 </td>\r
41                 </td>\r
42                 <td>\r
43                 <input type="radio" class="radio_test" name="myradio" id="radio1"/>\r
44                 <label for="radio1">Radio1</label><br/>\r
45                 <input type="radio" class="radio_test" name="myradio" id="radio2"/>\r
46                 <label for="radio2">Radio2</label>\r
47                 <input type="radio" class="radio_test" name="myradio" id="radio3" disabled="disabled"/>\r
48                 <label for="radio3">Radio3</label>\r
49                 </td>\r
50                 <td>\r
51                 <input class='test' value='' id='input' size='10' />\r
52                 <input class='test' value='test' id='input2' size='10' readonly="readonly" />\r
53                 </td>\r
54                 <td>\r
55                 <textarea rows='2'></textarea>\r
56                 </td>\r
57                 <td>$(document).bind('change')</td>\r
58             </tr>\r
59             <tr>\r
60                 <td>Live:</td>\r
61                 <td id='select' class="red">SELECT</td>\r
62                 <td id='mselect' class="red">MULTI</td>\r
63                 <td id='checkbox' class="red">CHECKBOX</td>\r
64                 <td id='radio' class="red">RADIO</td>\r
65                 <td id='text' class="red">TEXT</td>\r
66                 <td id='textarea' class="red">TEXTAREA</td>\r
67                 <td id='boundChange' class="red">DOCUMENT</td>\r
68             </tr>\r
69             <tr>\r
70                 <td>Bind:</td>\r
71                 <td id='selectbind' class="red">SELECT</td>\r
72                 <td id='mselectbind' class="red">MULTI</td>\r
73                 <td id='checkboxbind' class="red">CHECKBOX</td>\r
74                 <td id='radiobind' class="red">RADIO</td>\r
75                 <td id='textbind' class="red">TEXT</td>\r
76                 <td id='textareabind' class="red">TEXTAREA</td>\r
77             </tr>\r
78         </table>\r
79         <h2>Submit Tests</h2>\r
80         <table>\r
81         <tr>\r
82             <td>\r
83                 Submit each:\r
84             </td>\r
85             <td>\r
86                 <form action="" id="text_submit">\r
87                 <input class='test' type='text' value='Key Return To Submit'/>\r
88                 </form>\r
89             </td>\r
90             <td>\r
91                 <form action="" id="password_submit">\r
92                 <input class='test' type='password' value=''/>\r
93                 </form>\r
94             </td>\r
95             <td>\r
96                 <form action="" id="submit_submit">\r
97                 <input type='submit' value="Click Me To Submit" />\r
98                 </form>\r
99             </td>\r
100             <td>$(document).bind('submit')</td>\r
101         </tr>\r
102         <tr>\r
103                 <td>Results:</td>\r
104                 <td id='textSubmit' class="red">TEXT</td>\r
105                 <td id='passwordSubmit' class="red">PASSWORD</td>\r
106                 <td id='submitSubmit' class="red">BUTTON</td>\r
107                 <td id='boundSubmit' class="red">DOCUMENT</td>\r
108         </tr>\r
109         </table>\r
110 \r
111         <ul id="log"></ul>\r
112 \r
113         <script type='text/javascript'>\r
114         jQuery.fn.addChangeTest = function( id, prevent ) {\r
115                 return this.bind("change", function(e){\r
116                         jQuery(id + "bind").blink();\r
117                 }).live("change", function(e){\r
118                         if ( prevent ) {\r
119                                 e.preventDefault();\r
120                         }\r
121 \r
122                         jQuery(id).blink();\r
123                 });\r
124         };\r
125 \r
126         jQuery.fn.addSubmitTest = function( id, prevent ) {\r
127                 return this.live("submit", function(e){\r
128                         if ( prevent ) {\r
129                                 e.preventDefault();\r
130                         }\r
131 \r
132                         jQuery(id).blink();\r
133                 });\r
134         };\r
135 \r
136         jQuery.fn.blink = function(){\r
137                 return this.css("backgroundColor","green").css("border","solid 3px green").delay(700).queue(function(next){\r
138                         jQuery(this).css("backgroundColor","");\r
139                         next();\r
140                 });\r
141         };\r
142         \r
143         $(".select_test").addChangeTest("#select");\r
144         $(".mselect_test").addChangeTest("#mselect");\r
145         $(".checkbox_test").addChangeTest("#checkbox");\r
146         $(".radio_test").addChangeTest("#radio");\r
147         $('textarea').addChangeTest("#textarea");\r
148         $('#input').addChangeTest("#text");\r
149         $(document).bind("change", function(){\r
150                 jQuery("#boundChange").blink();\r
151         });\r
152         \r
153         $("#text_submit").addSubmitTest("#textSubmit", true);\r
154         $("#password_submit").addSubmitTest("#passwordSubmit", true);\r
155         $("#submit_submit").addSubmitTest("#submitSubmit", true);\r
156         $(document).bind("submit", function(){\r
157                 jQuery("#boundSubmit").blink();\r
158         });\r
159         \r
160         </script>\r
161     </body>\r
162 </html>\r