JQuery рдХреЗ рдорд╛рдиреНрдп рдкреНрд▓рдЧрдЗрди рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдирд┐рдпрдореЛрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рддрд░реАрдХреЗ рдкрд░ рдХрдИ рд▓реЗрдЦ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдЗрд╕ рдкреНрд▓рдЧрдЗрди рдХреЗ рдЖрдВрддрд░рд┐рдХ рд╕рдВрдЪрд╛рд▓рди рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдо рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХрд░реЗрдВрдЧреЗред
рдпрд╣ рд▓реЗрдЦреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХрд╛ рдкрд╣рд▓рд╛ рднрд╛рдЧ рд╣реИ "Asp.NET MVC рдХреЗ рд╡рд┐рдиреАрдд рдорд╛рдиреНрдпрддрд╛ рдХреЛ рд╕рдордЭрдирд╛"
1. рдЕрдВрджрд░ jQuery рдХреЗ рдорд╛рдиреНрдп рдкреНрд▓рдЧрдЗрди рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ
2. ASP.Net MVC рдореЗрдВ рд╡рд┐рдиреАрдд рд╕рддреНрдпрд╛рдкрди рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди HTML рдХреЛрдб рдХреЛ рд╕рдордЭрдирд╛3. ASP.Net MVC рдореЗрдВ рд╡рд┐рдиреАрдд jQuery рдХреЗ рдорд╛рдиреНрдп рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЖрдВрддрд░рд┐рдХ рдХрд╛рд░реНрдпредрд╣рдо рдЗрд╕ рд▓реЗрдЦ рд╕реЗ рдХреНрдпрд╛ рд╕реАрдЦрддреЗ рд╣реИрдВ:
1. рдлреЙрд░реНрдо рдХреЛ рдХреИрд╕реЗ рдорд╛рдиреНрдп рдХрд░реЗрдВред
2. рд╕рддреНрдпрд╛рдкрди рд╕рдВрджреЗрд╢ рдФрд░ рд╡реЗ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред
3. рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╕рддреНрдпрд╛рдкрди рдирд┐рдпрдо рдЬреЛрдбрд╝рдирд╛ред
4. рдЬрдм рд╣рдо рд╕рддреНрдпрд╛рдкрди рд╡рд┐рдзрд┐ рдХрд╣рддреЗ рд╣реИрдВ рддреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИред
рдХреИрд╕реЗ рдПрдХ рдлрд╛рд░реНрдо рдХреЛ рдорд╛рдиреНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рдХрд┐рд╕реА рдлреЙрд░реНрдо рдХреЛ рдорд╛рдиреНрдп рдХрд░рдиреЗ рдХреЗ 2 рдореБрдЦреНрдп рддрд░реАрдХреЗ рд╣реИрдВред
1. рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд░реНрдЧ рдХреЗ рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
рд╣рдо "рд╡рд░реНрдЧ" html рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рдХреНрд╖реЗрддреНрд░ рдХреЗ рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рд╕рддреНрдпрд╛рдкрди рдХреЛ рд╕рдХреНрд╖рдо рдХрд░реЗрдЧрд╛ред
рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдкрд╛рда рдХреНрд╖реЗрддреНрд░ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рд╣рдо рдЗрдирдкреБрдЯ рддрддреНрд╡ рдореЗрдВ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╡рд░реНрдЧ = "рдЖрд╡рд╢реНрдпрдХ" рдХрд╛ рдорд╛рди рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ
рдПрдЪрдЯреАрдПрдордПрд▓<form action="/" method="post"> <input id="Name" type="text" name="Name" value="" class ="required" /> <input type="submit" value="Submit" /> </form>
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ $(document).ready(function() { $('form').validate(); });
рддреЛ рдЖрдк рдХреБрдЫ рд╡рд░реНрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдирд┐рдпрдо рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред
рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдкреЗрд╢реЗрд╡рд░реЛрдВ рдФрд░ рд╡рд┐рдкрдХреНрд╖:
рдХреЗрд╡рд▓ рдЙрди рдирд┐рдпрдореЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдХреЛрдИ рддрд░реНрдХ рдирд╣реАрдВ рд▓реЗрддреЗред
рд╣рдо HTML рд╡рд┐рд╢реЗрд╖рддрд╛ "рд╡рд░реНрдЧ" рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрд╕ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИред
рд▓реЗрдХрд┐рди рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред
AddClassRules рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
AddClassRules рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рд╣рдореЗрдВ рдПрдХ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдпреМрдЧрд┐рдХ рдирд┐рдпрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдмрдирд╛рддрд╛ рд╣реИред
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ $.validator.addClassRules({ name: { required: true, minlength: 2 }, zip: { required: true, digits: true, minlength: 5, maxlength: 5 } });
рдпрд╣ рдХреЛрдб "рдирд╛рдо" рдФрд░ "рдЬрд╝рд┐рдк" рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП 2 рдирдП рдирд┐рдпрдо рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдФрд░ рдЕрдЧрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ "рдЗрдирдкреБрдЯ" рддрддреНрд╡ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ "рдЬрд╝рд┐рдк" рд╡рд░реНрдЧ рд╣реИ, рддреЛ рдирд┐рдпрдо рдЗрд╕ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддреЗ рд╣реИрдВ: рдЗрд╕рдХрд╛ рдореВрд▓реНрдп рдЕрдирд┐рд╡рд╛рд░реНрдп рд╣реИ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗрд╡рд▓ рд╕рдВрдЦреНрдпрд╛ рджрд░реНрдЬ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд▓рдВрдмрд╛рдИ рдмрд┐рд▓реНрдХреБрд▓ 5 рдЕрдХреНрд╖рд░ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред
рдПрдЪрдЯреАрдПрдордПрд▓ <input class="zip" type="text" name="zipCode" />
рд╕реВрдЪрдирд╛: рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд┐рдпрдо рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╕рдВрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдордЧреНрд░ рдирд┐рдпрдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд╣рдореЗрдВ "рдЖрд╡рд╢реНрдпрдХ" рдирд┐рдпрдо рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдирд╛рдо рдХреЗ рд╕рд╛рде рдЖрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕ рдЙрдкрдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рдирд┐рдпрдо рдмрдирд╛рдПрдВ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕рдВрджреЗрд╢ рд╕реЗрдЯ рдХрд░реЗрдВред
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ $.validator.addMethod("newrequired", $.validator.methods.required, "new name is required");
рдпрд╛ рд╣рдо HTML рд╡рд┐рд╢реЗрд╖рддрд╛ "рд╢реАрд░реНрд╖рдХ" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рдХрд╛ рдореВрд▓реНрдп рдПрдХ рдпреМрдЧрд┐рдХ рдирд┐рдпрдо рдХреЗ рд▓рд┐рдП рдПрдХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рд╣реЛрдЧрд╛ред
рдиреЛрдЯ: рд╡рд░реНрдЧ рдирд╛рдо рд╕рддреНрдпрд╛рдкрди рдХреЗрд╡рд▓ рд╕рддреНрдпрд╛рдкрди рдирд┐рдпрдореЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдХреЛрдИ рддрд░реНрдХ рдирд╣реАрдВ рд▓реЗрддреЗ рд╣реИрдВред
2. рдорд╛рдиреНрдп () рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП JSON рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рдпрдо рдЬреЛрдбрд╝рдирд╛
рдирд╛рдо рд╕реЗ, рдЖрдкрдХреЛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдпрд╣ рд╕рддреНрдпрд╛рдкрди рд╡рд┐рдзрд┐ рдПрдХ json рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЙрди рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдореЗрдВ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ рдЙрдирдХреЗ рд▓рд┐рдП рд╕рддреНрдпрд╛рдкрди рдирд┐рдпрдореЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдПрдЪрдЯреАрдПрдордПрд▓ <form> <input id="something" type="text" name="userEmail" /> <input id="submit" type="submit" value="submit" /> </form>
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ $('form').validate({ rules: { userEmail: { email: true, required: true } } });
рдиреЛрдЯ: рдЬрдм рд╣рдо рдирд┐рдпрдореЛрдВ рдХреЛ рдорд╛рдиреНрдп рдлрд╝рдВрдХреНрд╢рди рдкрд░ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХреБрдВрдЬреА рдХреЛ рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд╛рдо рдХрд╛ рдорд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рди рдХрд┐ рд╡реИрд▓реНрдпреВ рдЖрдИрдбреАред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ: рдХреБрдВрдЬреА "рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо" рд╣реИ, рд╡рд┐рд╢реЗрд╖рддрд╛ "рдирд╛рдо" рдХрд╛ рдореВрд▓реНрдп, рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛ "рдЖрдИрдбреА" рдХрд╛ рдПрдХ рдЕрд▓рдЧ рдореВрд▓реНрдп рд╣реИред
рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдкреЗрд╢реЗрд╡рд░реЛрдВ рдФрд░ рд╡рд┐рдкрдХреНрд╖:
рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣рдореЗрдВ рдЕрдзрд┐рдХ рд╕рддреНрдпрд╛рдкрди рдирд┐рдпрдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рджреЗрддрд╛ рд╣реИ, рдЬреЛ рддрд░реНрдХ рд▓реЗрддреА рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рдорд┐рдирд▓реЙрдиреНрдЧ, рд░рд┐рдореЛрдЯ, рдЗрдХреНрд╕реНрдЯреЛ, рдЖрджрд┐ред
рд╕рдм рдХреБрдЫ рдкрд░ рдЙрддреНрдХреГрд╖реНрдЯ рдФрд░ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕рдорд╛рдпреЛрдЬреНрдп рдирд┐рдпрдВрддреНрд░рдгред
рд▓реЗрдХрд┐рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдлреЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЕрд▓рдЧ "рдорд╛рдиреНрдп" рдлрд╝рдВрдХреНрд╢рди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдбрд╛рдпрдирд╛рдорд┐рдХ рдирд┐рдпрдо рдЬреЛрдбрд╝реЗрдВ рдпрд╛ рдирд┐рдХрд╛рд▓реЗрдВред
рдирд┐рдпрдо рдЬреЛрдбрд╝рдирд╛
рдПрдХ рдирд┐рдпрдо рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдлреЙрд░реНрдо рдХреЛ рд╡реЗрд░рд┐рдлрд╛рдИ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж jQuery рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП "рдирд┐рдпрдо" рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ "рдкреИрд░рд╛рдореАрдЯрд░" рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдкрд╣рд▓реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рджреВрд╕рд░реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рдпрдо рдСрдмреНрдЬреЗрдХреНрдЯ рдЬрд┐рд╕реЗ рд╣рдо рдЗрд╕ рддрддреНрд╡ рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рд╣рдо "рд╕рдВрджреЗрд╢" рдСрдмреНрдЬреЗрдХреНрдЯ рднреА рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ) "рд╣рдордиреЗ рдЬреЛ рдирд┐рдпрдо рдЬреЛрдбрд╝реЗ рд╣реИрдВ)ред
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ $('.input').rules('add', { required: true, messages: { required: true } })
рдирд┐рдпрдо рд╣рдЯрд╛рдирд╛
рдпрджрд┐ рд╣рдо рдХрд┐рд╕реА рдирд┐рдпрдо рдпрд╛ рдирд┐рдпрдореЛрдВ рдХреЛ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рд╕реНрдЯреНрд░рд┐рдВрдЧ "рд╣рдЯрд╛рдПрдВ" рдХреЛ рдирд┐рдпрдо рд╡рд┐рдзрд┐ рдХреЗ рдкрд╣рд▓реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рджреВрд╕рд░рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рд╡рд╣ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╡реЗ рдирд┐рдпрдо рд╢рд╛рдорд┐рд▓ рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдо рдПрдХ рд╕реНрдерд╛рди рджреНрд╡рд╛рд░рд╛ рдЕрд▓рдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ $('.input').rules('remove', 'min max');
рдореИрдиреБрдЕрд▓ рд╕реЗрдЯрдЕрдк рджреГрд╖реНрдЯрд┐рдХреЛрдг
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ var validator = $('form').data('validator'); validator.settings.rules.objectName = { required: true }
рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИ рдпрджрд┐ рдЖрдкрдиреЗ рдирд┐рдпрдо рдФрд░ рд╕рдВрджреЗрд╢ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдП рд╣реИрдВ, рддреЛ рдЖрдк рдЕрдкрдиреЗ рд╕рд╛рде рдорд╛рдиреНрдп рдирд┐рдпрдореЛрдВ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ $.extend(validator.settings, { rules: rules, messages: messages });
рд╕рддреНрдпрд╛рдкрди рд╕рдВрджреЗрд╢ рдФрд░ рд╡реЗ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ
рд╕рддреНрдпрд╛рдкрди рд╕рдВрджреЗрд╢ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рддреАрди рддрд░реАрдХреЗ рд╣реИрдВред
1. "рдорд╛рдиреНрдп" рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП "рд╕рдВрджреЗрд╢" рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд╛рд╕ рдХрд░реЗрдВред рд╕рдВрджреЗрд╢ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ key \ value рдЬреЛрдбрд╝реЗ рд╣реЛрддреЗ рд╣реИрдВред рдХреБрдВрдЬреА рддрддреНрд╡ рдХреЗ "рдирд╛рдо" рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рдореВрд▓реНрдп рд╣реИред рдореВрд▓реНрдп рдкреНрд░рддреНрдпреЗрдХ рдирд┐рдпрдо рдФрд░ рдЙрд╕рдХреЗ рд╕рдВрджреЗрд╢ рд╕реЗ рдпреБрдХреНрдд рд╡рд╕реНрддреБ рд╣реИред
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ $('form').validate({ rules: { userEmail: { email: true, required: true } }, messages: { userEmail: { email: "Please enter your email", required: "*" } } });
2. рд╡рд┐рд╢реЗрд╖рддрд╛ "рд╢реАрд░реНрд╖рдХ" рддрддреНрд╡ рдХреЗ рдореВрд▓реНрдп рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ
рдПрдЪрдЯреАрдПрдордПрд▓ <input id="Email" title="you have to enter a value" type="text" name="Email" />
3. рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕рдВрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдЬрдм рдПрдХ рд╕рддреНрдпрд╛рдкрди рдирд┐рдпрдо рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдирд┐рдпрдореЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕рдВрджреЗрд╢ рд╣реЛрддреЗ рд╣реИрдВред
рдиреЛрдЯ: рдпреЗ рддреАрди рд╡рд┐рдзрд┐рдпрд╛рдВ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ-рджреВрд╕рд░реЗ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рддреА рд╣реИрдВ, рд╕рд░реНрд╡реЛрдЪреНрдЪ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ "рд╕рдВрджреЗрд╢" рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИ, рдФрд░ рд╕рдмрд╕реЗ рдХрдо рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕рдВрджреЗрд╢ рд╣реИред
рдХрд╕реНрдЯрдо рд╕рддреНрдпрд╛рдкрди рдирд┐рдпрдо рдЬреЛрдбрд╝рдирд╛
рдЬрдм рд╣рдо рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рддреНрдпрд╛рдкрди рдирд┐рдпрдо рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ
$ .validator.addMethodрдпрд╣ рд╡рд┐рдзрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреА рд╣реИ:
- рдирд┐рдпрдо рдХрд╛ рдирд╛рдо
- рдлрд╝рдВрдХреНрд╢рди рдЬреЛ рд╕рддреНрдпрд╛рдкрди рдХрд░рддрд╛ рд╣реИ;
- рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕рдВрджреЗрд╢ред
рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдЬреЛ рд╕рддреНрдпрд╛рдкрди рдХрд░рддрд╛ рд╣реИ рд╡рд╣ рджреЛ рдпрд╛ рддреАрди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ function validationMethod (value, element) // OR function validationMethod (value, element, params)
рдЖрдЗрдП рдЗрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рддреЗ рд╣реИрдВред
рдорд╛рди: рдЖрдЗрдЯрдо рдХрд╛ DOM рдорд╛рди рдорд╛рдиреНрдп рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ред
рддрддреНрд╡: DOM рддрддреНрд╡
рдкреИрд░рд╛рдореАрдЯрд░: рд╣рдо рдореВрд▓реНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдХреНрдпрд╛ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рддреНрдпрд╛рдкрди рдирд┐рдпрдо рд╡рд╣реА рд╣реИрдВ рдЬреЛ рдкрд░рдо рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ $('form').validate({ rules: { firstname: { compare: { type: "notequal", otherprop: "lastname" } } } });
рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, params {type: "notequal", otherprop: "lastname"} рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрдВрдЧреЗ
рдЕрдкрдирд╛ рдирд┐рдпрдо рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг:
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ $.validator.addMethod("notnumbers", function(value, element) { return !/[0-9]*/.test(value); }, "Please don't insert numbers.")
рдЬрдм рд╣рдо рд╡реИрдз рд╡рд┐рдзрд┐ рдХрд╣рддреЗ рд╣реИрдВ рддреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ
рдЬрдм рд╣рдо рдПрдХ рд╡рд┐рдзрд┐ рдкрд░ рдорд╛рдиреНрдп рд╡рд┐рдзрд┐ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЪреАрдЬреЗрдВ рдкрд░реНрджреЗ рдХреЗ рдкреАрдЫреЗ рд╣реЛрддреА рд╣реИрдВ:
рдПрдХ рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдлреЙрд░реНрдо рд╕реЗ рдЬреБрдбрд╝реЗ рд╕рднреА рдирд┐рдпрдореЛрдВ рдФрд░ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд╕рд╛рде рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдорд╛рдиреНрдп рд╡рд┐рдзрд┐ $ .data рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛ рд╕рдВрд▓рдЧреНрди рдХрд░рддреА рд╣реИред рд╣рдо рдЗрд╕реЗ рдлреЙрд░реНрдо рдХрд╛ рдЪрдпрди рдХрд░рдХреЗ рдФрд░ jQuery рдХреЗ "$ .data" рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рдФрд░ рдЗрд╕реЗ "рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛" рдкрд╛рд╕ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП рд╡рд┐рдзрд╛рдпрдХ рд╡рд╕реНрддреБ рд╕рднреА рдореЗрдЯрд╛рдбреЗрдЯрд╛ рд╣реИ рдЬреЛ рд╣рдореЗрдВ рдкреГрд╖реНрда рдЬреАрд╡рди рдЪрдХреНрд░ рдореЗрдВ рдХрд┐рд╕реА рднреА рд╕рдордп рд╕рддреНрдпрд╛рдкрди рд╡рд┐рдХрд▓реНрдк рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдо рд░рди рдЯрд╛рдЗрдо рдореЗрдВ рдЙрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдордиреЗ рд╕рддреНрдпрд╛рдкрди рд╡рд┐рдзрд┐ рдореЗрдВ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдерд╛, рдЬреИрд╕реЗ рдХрд┐ рдирд┐рдпрдореЛрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдпрд╛ рд╣рдЯрд╛рдирд╛, рдпрджрд┐ рдлрд╝реАрд▓реНрдб рд╡реИрдз рдпрд╛ рдЕрдорд╛рдиреНрдп рд╣реИ, рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рдЕрдирджреЗрдЦрд╛ рдЪрдпрдирдХрд░реНрддрд╛ рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрдирд╛ред
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ
рдиреЛрдЯ: рдЬрдм рдЖрдк рдорд╛рдиреНрдп рд╡рд┐рдзрд┐ рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рдорд╛рдиреНрдп рдХрд┐рдП рдЧрдП рдлрд╝реЙрд░реНрдо рдкрд░ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдХреЗрд╡рд▓ рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд▓реМрдЯрд╛ рджреЗрдЧрд╛, $ .data рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдорд╛рдиреНрдп рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рдкрд╛рд░рд┐рдд рд╕рднреА рдкрд┐рдЫрд▓реЗ рд╡рд┐рдХрд▓реНрдк рдорд┐рдЯ рдЬрд╛рдПрдВрдЧреЗред
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ var validator = $(".selector").validate()
рдкреНрд░рдкрддреНрд░ рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕рдВрд▓рдЧреНрди рдХрд░рдирд╛
рдЬрдм рд╣рдо рд╕рдмрдорд┐рдЯ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ (рдлрд╝реЙрд░реНрдо рд╕рдмрдорд┐рдЯ рдХрд░реЗрдВ) рдФрд░ рдЧрд▓рдд рдорд╛рди рдЙрд╕ рдлрд╝реАрд▓реНрдб рдореЗрдВ рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╣рдордиреЗ рд╕рддреНрдпрд╛рдкрди рд╕рдВрд▓рдЧреНрди рдХрд┐рдпрд╛ рдерд╛ред рдпрджрд┐ рдХреЛрдИ рдлрд╝реАрд▓реНрдб рдЕрдорд╛рдиреНрдп рд╣реИ, рддреЛ рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдХреА рдШрдЯрдирд╛рдУрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдпрд╣ рдЬрд╛рдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдпрд╣ рдорд╛рдиреНрдп рд╣реИ рдпрд╛ рдирд╣реАрдВ, рд╕рддреНрдпрд╛рдкрди рдкреНрд▓рдЧрдЗрди рдЕрдзрд┐рдХ рдмрд╛рд░реАрдХреА рд╕реЗ рджрд┐рдЦреЗрдЧрд╛ред
рдкреНрд░рдкрддреНрд░ рдХреА рдШрдЯрдирд╛рдПрдБ рдЬреЛ рдХрд┐ рд╕рдмрд╕реНрдХреНрд░рд╛рдЗрдмрд░ рдХреА рд╣реИрдВ, рд╡реЗ "рдХреНрд▓рд┐рдХ", "рдлрд╝реЛрдХрд╕рд┐рди", "рдлрд╝реЛрдХрдЯрдЖрдЙрдЯ", "рдХреАрдк", "рд╕рдмрдорд┐рдЯ" рд╣реИрдВред
рдиреЛрдЯ: рдЖрдк рдорд╛рдиреНрдп рд╡рд┐рдзрд┐ рдореЗрдВ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ, рдФрд░ рдорд╛рдиреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЭреВрда рдмреЛрд▓рдХрд░ рдХреБрдЫ рдШрдЯрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рддреНрдпрд╛рдкрди рдХреЛ рдЕрдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ $(".selector").validate({ onfocusout: false, onkeyup: false, onclick: false, onsubmit: false });
рдирджреАрдо рдЦреЗрдбрд░ рдХреЗ рд▓реЗрдЦ рдХрд╛ рдЕрдиреБрд╡рд╛рдж, jQuery рдХрд╛ рдорд╛рдиреНрдп рдкреНрд▓рдЧрдЗрди рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
nadeemkhedr.wordpress.com/2012/08/12/how-the-jquery-validate-plugin-works-internally/#goCallValidateрдЕрджреНрдпрддрди режрем/режрез/резрей: рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рдЕрдиреНрдп рдкрджреЛрдВ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛