tFormer.js - рдЕрдкрдиреЗ HTML рд░реВрдкреЛрдВ рдХреЛ рд╕рд╢рдХреНрдд рдХрд░реЗрдВ
рдкреНрд░рд╕реНрддрд╛рд╡рдирд╛:
рдХреНрдпрд╛ рдЖрдкрдХреЛ рдлреЙрд░реНрдо рдмрдирд╛рдиреЗ рдереЗ? рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рдЗрди рд░реВрдкреЛрдВ рдХреЛ рдорд╛рдиреНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрдирд╛ рд╣реИ? рдХреНрдпрд╛ рдЖрдкрдиреЗ рдХрднреА рдлрд╛рд░реНрдореЛрдВ рдХреЛ рдорд╛рдиреНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореМрдЬреВрджрд╛ рдкреНрд▓рдЧрдЗрдиреНрд╕ / рдРрдб-рдСрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ?
рдореЗрд░реЗ рдкрд╛рд╕ рдерд╛, рд▓реЗрдХрд┐рди рдореИрдВ 100% рд╕рдВрддреБрд╖реНрдЯ рдирд╣реАрдВ рдерд╛ рдпрд╛ рддреЛ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде-рд╕рд╛рде (рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдореЗрд░реА рд╕рддреНрдпрд╛рдкрди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрдкрдиреЗ рд░реВрдкреЛрдВ рдХреЗ рддрд╣рдд), рдпрд╛ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдореМрдЬреВрджрд╛ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред
рд╕рдорд╕реНрдпрд╛:
рд╣рдорд╛рд░реА рдЕрдкрдиреА рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдФрд░ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреА рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣рдореЗрд╢рд╛ рд╕реЗ рд░рд╣реА рд╣реИрдВ - рд▓рдЪреАрд▓рд╛рдкрди, рд╕реБрд╡рд┐рдзрд╛ рдФрд░ рд╕рд░рд▓рддрд╛ред
рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдбреЗрдЯрд╛-рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ (рдЬреИрд╕реЗ рдкрд╛рд░реНрд╕рд▓реЗ.рдЬреЗрдПрд╕) рдХреЛрдб рдХреЛ рдХрдо рдкрдардиреАрдп рдмрдирд╛рддреЗ рд╣реИрдВ, рдФрд░ рдЖрдкрдХреЛ рдХрднреА рднреА рдпрд╣ рдпрд╛рдж рдирд╣реАрдВ рд░рд╣рддрд╛ рдХрд┐ рд╡реЗ рд╕рднреА рдХреИрд╕реЗ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВред рдмрд╕ рдирд╣реАрдВ ...
рд╕рднреА рдкреНрд▓рдЧрдЗрдиреНрд╕ рд╡рд╛рдВрдЫрд┐рдд HTML рд░реВрдкреЛрдВ рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рд╡рд┐рднрд┐рдиреНрди рд░реВрдкреЛрдВ рдХреЗ рд▓рд┐рдП рд▓рдЧрд╛рддрд╛рд░ рдЕрдкрдиреА рдЦреБрдж рдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрдирд╛ рд╣рдореЗрд╢рд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдФрд░ рдЙрдЪрд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред
рдЙрджреНрджреЗрд╢реНрдп:
рд╕рд╣рдЬ рдЬреНрдЮрд╛рди рдпреБрдХреНрдд рд╡рд╛рдХреНрдп-рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рд╕рд╛рде рдФрд░ рдорд╛рдиреНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдиреБрдХреВрд▓рдиреАрдп, рд▓рдЪреАрд▓рд╛, рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд░реВрдк рд╕реЗ рдХреБрдЫ рдмрдирд╛рдПрдВред
рд╕рдорд╛рдзрд╛рди:
рд╕рдорд╛рдзрд╛рди рдореЗрдВ
tFormer.js рдирд╛рдордХ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдУрдкрди рд╕реЛрд░реНрд╕ рдкреНрд▓рдЧрдЗрди рдХрд╛
рдкрд░рд┐рдгрд╛рдо рд╣реБрдЖ ред
рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ:
- рд╕реНрд╡рддрдВрддреНрд░рддрд╛ - рдЖрдЬрдХрд▓ jQuery (рдПрдХ рджреБрд░реНрд▓рдн рд╡рд╕реНрддреБ) рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ ;
- рд╕рддреНрдпрд╛рдкрди рдирд┐рдпрдореЛрдВ рдХреА рдПрдХ рдмрдбрд╝реА рд╕реВрдЪреА;
- рд╕рднреА рд╕рддреНрдпрд╛рдкрди рдирд┐рдпрдо рдЫреЛрдЯреЗ рдФрд░ рд╕рд╣рдЬ рд╣реИрдВ - рдпрд╛рдж рд░рдЦрдиреЗ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдЖрд╕рд╛рди;
- рдПрдХ рдирдИ tFormer рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рддреЗ рд╕рдордп рдХреЗрд╡рд▓ рдПрдХ рдбреЗрдЯрд╛-рд╡рд┐рд╢реЗрд╖рддрд╛ рдпрд╛ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд┐рдпрдореЛрдВ рдХреЛ рдорд┐рд▓рд╛рдирд╛ рдФрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛;
- рдПрдХ рдЕрд▓рдЧ рд╡рд╕реНрддреБ рдЬреЛ рдорд╛рдиреЛрдВ рдХреЗ рд╕рддреНрдпрд╛рдкрди рдХреЛ рд╕реНрд╡рдпрдВ рдХрд░рддреА рд╣реИ рдЙрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдореБрдЦреНрдп рдкреНрд▓рдЧрдЗрди рдХреЗ рдмрд╛рд╣рд░ рдпрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрдЯрд┐рд▓ рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ;
- "рдХрд╕реНрдЯрдо" рд╕реНрд╡рдпрдВ () рд╕рддреНрдпрд╛рдкрди рд╕рдорд╛рд░реЛрд╣ - рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреНрд╖реЗрддреНрд░ рдХреЗ рдЬрдЯрд┐рд▓ рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП рдбреЗрд╡рд▓рдкрд░ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ;
- "рдлреНрд▓рд╛рдИ рдкрд░" (рд╕реЗрдЯрд░реБрд▓реНрд╕ () рдФрд░ рд╕реЗрдЯ () рдХреЗ рддрд░реАрдХреЛрдВ) рдХреЗ рдирд┐рдпрдореЛрдВ рдФрд░ рд╕реЗрдЯрд┐рдВрдЧ рдХреЛ рдмрджрд▓рдирд╛;
- рдирд┐рдпрдВрддреНрд░рдг рдЬрдорд╛ рдШрдЯрдирд╛рдУрдВ рдФрд░ рджреГрд╢реНрдп рдирд┐рдпрдВрддреНрд░рдг рд╕рдмрдорд┐рдЯ рдмрдЯрди;
- рд╕рддреНрдпрд╛рдкрди рдХреА рдЬрд╛рдБрдЪ рдХреЗ рд▓рд┐рдП рдмрдЯрди (рдЪреЗрдХ рдмрдЯрди);
- рдЪрд░ рд╕рддреНрдпрд╛рдкрди рдШрдЯрдирд╛ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП рдШрдЯрдирд╛ "рдЗрдирдкреБрдЯ" рдФрд░ "рдХреАрдк") рд╣реИ;
- рдЯрд╛рдЗрдордЖрдЙрдЯ рд╕рддреНрдпрд╛рдкрди рдореЗрдВ рджреЗрд░реА;
- рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреА рд╕реНрдерд┐рддрд┐;
- рд╕рднреА рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд▓реНрдк рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдХреНрд╖реЗрддреНрд░ рдХреЗ рд▓рд┐рдП рдЕрджреНрд╡рд┐рддреАрдп;
- onerror рдФрд░ onvalid рдлрд╝рдВрдХреНрд╢рди рдЬреЛ рд╕рддреНрдпрд╛рдкрди рдХреЗ рдмрд╛рдж рдЖрдЧ рд▓рдЧрд╛рддреЗ рд╣реИрдВ;
- рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕рддреНрдпрд╛рдкрди рд╕реЗ рдкрд╣рд▓реЗ рд╣рд░ рдмрд╛рд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ;
- AJAX рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ (рдЕрдВрдд рдореЗрдВ (рдкрд░рд┐рдгрд╛рдо) рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рд╕рдЦреНрдд рдирд┐рдпрдореЛрдВ рдХреЗ рдмрд┐рдирд╛ AJAX рд╕рддреНрдпрд╛рдкрди, рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдХреЗ рд╕рд╣реА рдпрд╛ рдЧрд▓рдд рд▓реМрдЯрдирд╛ рдЪрд╛рд╣рд┐рдП);
- рддреНрд░реБрдЯрд┐, рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдФрд░ рд╡рд┐рдХрд▓рд╛рдВрдЧ рд╡рд░реНрдЧреЛрдВ рдХрд╛ рд╕рдВрд╢реЛрдзрди;
- ... рдФрд░ рдЗрд╕реА рддрд░рд╣ред
рд╕реНрдерд╛рдкрдирд╛ рдФрд░ рдЙрдкрдпреЛрдЧ:
- рдбрд╛рдЙрдирд▓реЛрдб;
- рд╡рд╛рдВрдЫрд┐рдд рдкреГрд╖реНрда рдкрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ;
- рд╡рд╛рдВрдЫрд┐рдд рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ tFormer рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП HTML рдлреЙрд░реНрдо:
<form id="my_form_id"> <input type="text" name="zip" data-rules="a1 l=5" /> <input type="text" name="email" data-rules="* @" /> <input type="submit" value="Submit" /> </form>
рдПрдХ tFormer рдиреНрдпреВрдирддрдо рдкрд░рд┐рднрд╛рд╖рд╛ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг:
var my_form_id = new tFormer('my_form_id');
рд╕рдВрд╢реЛрдзрдиреЛрдВ рдХреЗ рд╕рд╛рде tFormer рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг:
var my_form_id = new tFormer('my_form_id', { errorClass: 'my_own_errorClass',
рд╕рддреНрдпрд╛рдкрди рдирд┐рдпрдореЛрдВ рдХреА рд╕рд╛рд░рд╛рдВрд╢ рддрд╛рд▓рд┐рдХрд╛:
рдирд┐рдпрдо | рд╡рд┐рд╡рд░рдг |
* | рдЖрд╡рд╢реНрдпрдХ рдлрд╝реАрд▓реНрдб (рдорд╛рди рд░рд┐рдХреНрдд рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛) |
@ , @ , ip , base64 , url | рдИрдореЗрд▓, рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рд╕реЗ рдЕрд▓рдЧ рдХрд┐рдП рдЧрдП рдИрдореЗрд▓, IP рдкрддрд╛, Base64 рд╕реНрдЯреНрд░рд┐рдВрдЧ, URL (рдХреНрд░рдорд╢рдГ) |
< , > , >= , <= | рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдлрд╝реАрд▓реНрдб рдорд╛рдиреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рдирд╛ред (рдЙрджрд╛рд╣рд░рдг " >=10 " - рдлрд╝реАрд▓реНрдб рдорд╛рди 10 рд╕реЗ рдЕрдзрд┐рдХ рдпрд╛ рдЙрд╕рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП) |
l= , l< , l> , l>= , l<= | рдХрд┐рд╕реА рдлрд╝реАрд▓реНрдб рдорд╛рди рдХреЗ рд╡рд░реНрдгреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рддреБрд▓рдирд╛ рдХрд░рдирд╛ (рдЙрджрд╛рд╣рд░рдг " l=5 " - рдорд╛рди 5 рд╡рд░реНрдг рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП) |
= , =# | рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдорд╛рди (' =10 ', ' =some_value ') рдпрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЖрдИрдбреА (' =#some_id ') рдХреЗ рд╕рд╛рде рдХреБрдЫ рдлрд╝реАрд▓реНрдб рдХреЗ рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде =#some_id |
!= ! | рдХреЗ рдмрд░рд╛рдмрд░ рдирд╣реАрдВ рд╣реИ рдпрд╛ рдирд╣реАрдВ рд╣реИ (' !=some_value ' - 'some_value', ' !.com ' рдХреЗ рдмрд░рд╛рдмрд░ рдирд╣реАрдВ рд╣реИ - '.com' рдореЗрдВ рдирд╣реАрдВ рд╣реИ) |
c , cv , cm , ca , cd | рдХреНрд░реЗрдбрд┐рдЯ рдХрд╛рд░реНрдб рд╕рддреНрдпрд╛рдкрди (рд╕рднреА рдкреНрд░рдХрд╛рд░, рд╡реАрдЬрд╝рд╛, рдорд╛рд╕реНрдЯрд░рдХрд╛рд░реНрдб, рдПрдореЗрдХреНрд╕, рдЦреЛрдЬ) |
D= | рджрд┐рдирд╛рдВрдХ рдкреНрд░рд╛рд░реВрдк рдХреЗ рдЕрдиреБрдкрд╛рд▓рди рдХреА рддреБрд▓рдирд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, " D=YMD " - рд╡рд░реНрд╖-рдорд╛рд╣ рдХреА рддрд╛рд░реАрдЦ рдХреЗ рдЕрдиреБрдкрд╛рд▓рди рдХреА рдЬрд╛рдБрдЪ) |
рдХреЛрдб рдХреЗ рдЯреБрдХрдбрд╝реЗ:
рдмрджрд▓рддреЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдФрд░ рд╕рддреНрдпрд╛рдкрди рдирд┐рдпрдореЛрдВ рдХрд╛ рдЙрджрд╛рд╣рд░рдг: my_form_id.set({timeout: 555});
рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдСрдмреНрдЬреЗрдХреНрдЯ (рдореБрдЦреНрдп рдкреНрд▓рдЧрдЗрди рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЕрд▓рдЧ рд╕реЗ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ):
_v_('some value').validateWithRules('* l>5');
рдПрдХ рдЬрдЯрд┐рд▓ рдкреНрд░рдХрд╛рд░ рдХреЗ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ
рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╕реНрдЯрдо рдлрд╝рдВрдХреНрд╢рди (рдбреЗрд╡рд▓рдкрд░ рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛) ::
var my_form = tFormer('my_form_id', { fields: { field_name: { own: function(){ var my_value = this.value; var is_ip = _v_(my_value).validateWithRules('* ip'); var is_email = _v_(my_value).validateWithRules('* @'); var is_url = _v_(my_value).validateWithRules('* url'); return (is_ip || is_email || is_url); } } } });
рдкреНрд░рдкрддреНрд░ рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдП
рддрд░реАрдХреЗ :
рдкреНрд▓рдЧрдЗрди рд╕реНрдерд┐рддрд┐:
рдкреНрд▓рдЧрдЗрди рдиреЗ рд╕рдВрд╕реНрдХрд░рдг 0.3 рдкрд░ рдХрджрдо рд░рдЦрд╛ рд╣реИ рдФрд░ рдЕрдм рдмреАрдЯрд╛ рдореЗрдВ рд╣реИред
рдпрд╣ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ IE8 рдореЗрдВ (рдореБрдЭреЗ рднреНрд░рдорд┐рдд рд╣реЛрдирд╛ рдкрдбрд╝рд╛)ред
рдЧрд┐рддреБрдм рдкрд░ рдЭреВрда, рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрд╕рдВрднрд╡ рд╣реЛ рдФрд░ рд╕рдордп, рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рд╕рднреА рдЗрдЪреНрдЫреБрдХ рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ :)
рд▓рд┐рдВрдХ