рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░!
рд╣рдо рд╕рднреА рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП
Django рдПрдХ рдмрд╣реБрдд рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдФрд░ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рд╡рд┐рдХрд╛рд╕рд╢реАрд▓ рдврд╛рдВрдЪрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╡реЗрдм 2.0 рдпреБрдЧ рдХреЗ рдЖрдЧрдорди рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдпрд╣ рдЕрднреА рднреА
AJAX рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рддрдВрддреНрд░реЛрдВ рдХрд╛ рдЕрднрд╛рд╡ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рд╕рдмрдорд┐рдЯ рдХрд░рдиреЗ рдФрд░ рдорд╛рдиреНрдп рдХрд░рдиреЗ рдХреЗ рд░реВрдкреЛрдВ рдореЗрдВред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ django рдХреЗрд╡рд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд░ рдХреЛрдИ js- рдврд╛рдБрдЪрд╛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реЛ рдФрд░ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд▓рдЪреАрд▓рд╛ рд░рд╣рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реЛ, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдЕрдХреНрд╕рд░ рдРрд╕реЗ рдкреНрд░рдкрддреНрд░реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬреЛ рдкреЗрдЬреЛрдВ рдХреЛ рдкреБрдирдГ рд▓реЛрдб рдХрд┐рдП рдмрд┐рдирд╛ ajax рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред
рдРрд╕реЗ рд░реВрдкреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдФрд░ рдЙрдирдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдкрд░ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдПрдЧреАред
рддреБрд░рдВрдд рдПрдХ рдЖрд░рдХреНрд╖рдг рдХрд░реЗрдВ рдХрд┐ рд╡рд┐рдЪрд╛рд░ рдирдпрд╛ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдХрдИ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИрдВ рдЬреЛ рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ -
http://www.dajaxproject.com/ ред
рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рд╕реНрд╡рдпрдВ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдХреНрд▓рд╛рдЗрдВрдЯ рдХреА рдмрд╛рддрдЪреАрдд рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ рдпрд╛ рдЬреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреБрд╕реНрддрдХрд╛рд▓рдп рдирд╣реАрдВ рдЦреАрдВрдЪрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХреЗ рдмрдЧ рд╕реЗ рдирд┐рдкрдЯрддреЗ рд╣реИрдВ, рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рддрдВрддреНрд░
рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ
рд▓рд┐рдП рд╕рд╛рдЗрдХрд┐рд▓ рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХреИрд╕реЗ рдХрд░реЗрдВ рдФрд░ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВред
рдЖрдХрд╛рд░
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рд╛рдЗрдЯ рдкрд░ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрдВрдЬреАрдХрд░рдг рдлреЙрд░реНрдо рд▓реЗрдВ:
class RegisterForm(forms.Form): email = forms.EmailField() password1 = forms.CharField(label=_("Password"), widget=forms.PasswordInput) password2 = forms.CharField(label=_("Password confirmation"), widget=forms.PasswordInput)
рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬреАрд╡рди рдореЗрдВ, рдЖрдкрдХреЛ рдбреЗрдЯрд╛ рдореЙрдбрд▓ рд╕реЗ рдпрд╣ рдлрд╝реЙрд░реНрдо рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИред
рдлрд╛рд░реНрдо рдХрд╛ рдЙрддреНрдкрд╛рджрди
рдЗрд╕ рдлрд╝реЙрд░реНрдо рдХреЛ рдкреГрд╖реНрда рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреЛ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ:
- рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд╕рд╛рде рдПрдХ рдХрдВрдЯреЗрдирд░ рдмрдирд╛рдПрдВ : рдЙрди рд╕рднреА рдкреГрд╖реНрдареЛрдВ рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдирд╣реАрдВ рдЬрд┐рдирд╕реЗ рдЖрдк рдлрд╝реЙрд░реНрдо рдХреЛ (рдпрд╛ рдореВрд▓ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рдЕрдВрджрд░) рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдлрд┐рд░ рдЗрд╕ рдХрдВрдЯреЗрдирд░ рд╕реЗ рдПрдХ рдбрд╛рдпрд▓реЙрдЧ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП JS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
- рдПрдХ рдЕрд▓рдЧ URL рд╕реЗ рдЕрдЬрд╛рдХреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдлрд╝реЙрд░реНрдо рдЕрдкрд▓реЛрдб рдХрд░реЗрдВ, рдФрд░ рдлрд┐рд░ рдПрдХ рд╕рдВрд╡рд╛рдж рднреА рдмрдирд╛рдПрдВред
рдкрд╣рд▓реЗ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рд▓рд╛рдн рдЗрд╕рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреА рдЧрддрд┐ рд╣реИ (рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ), рд▓реЗрдХрд┐рди рджреВрд╕рд░реЗ рд╡рд┐рдХрд▓реНрдк рдореЗрдВ, рдЖрдк рдлреЙрд░реНрдо рдореЗрдВ
GET рдФрд░
POST рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА
рджреГрд╢реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рд╣рдореЗрдВ рджреЛрдиреЛрдВ рдорд╛рдорд▓реЛрдВ рдореЗрдВ POST рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ), рдкреНрд▓рд╕ рд╣рдо рдПрдХ рдЕрд▓рдЧ рдмрдирд╛рддреЗ рд╣реИрдВ рдлрд╝реЙрд░реНрдо рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдлрд╝рд╛рдЗрд▓, рдЬреЛ рдХреЛрдб рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдЕрдзрд┐рдХ рд╕реБрд╡реНрдпрд╡рд╕реНрдерд┐рдд рдмрдирд╛рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕реНрд╡рд╛рдж рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИред
рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореИрдВ рдкреГрд╖реНрда рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдХреЗрд╡рд▓ рдХреБрдЫ рдПрдореНрдмреЗрдб рдХрд░рддрд╛ рд╣реВрдВ рдпрджрд┐ рдпрд╣ рдПрдХ рд╕рд╛рдзрд╛рд░рдг
рд╣рд╛рдВ / рдирд╣реАрдВ рд╕рдВрд╡рд╛рдж рд╣реИ, рдФрд░ рд░реВрдкреЛрдВ рдХреЗ рд▓рд┐рдП рдореИрдВ рд╣рдореЗрд╢рд╛ рдЕрд▓рдЧ-рдЕрд▓рдЧ
рд╡рд┐рдЪрд╛рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред
рдЗрд╕рд▓рд┐рдП, рд╣рдо рдлреЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкрд░ рдпрд╣рд╛рдВ рд░рд╣рддреЗ рд╣реИрдВ, рдлрд┐рд░ рдХреЛрдб рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛:
- рджреЗрдЦреЗрдВ :
def register(request): form = RegisterForm() return direct_to_template(request, "register.html", extra_context={'form': form })
- рдЯреЗрдореНрдкрд▓реЗрдЯ :
{% load i18n %} <form id="register_form" method="post" action="{% url register %}"> {% csrf_token %} <ul> {{ form.as_ul }} <li><span id="register">{% trans "Register" %}</span></li> </ul> </form>
рдлрд╛рд░реНрдо рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг
рд╣рдо рдкреНрд░рдкрддреНрд░ рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред рдпрд╣рд╛рдВ рдпрд╣ рдзреНрдпрд╛рди рд░рдЦрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдЕрдЬрд╛рдХреНрд╕-рд╣реИрдВрдбрд▓рд░ рдХреЛ рдХрд┐рд╕реА рддрд░рд╣ рдпрд╣ рд╕рдордЭрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдлреЙрд░реНрдо рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдпрд╛ рдЗрд╕рдореЗрдВ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдореМрдЬреВрдж рд╣реИрдВред рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдпрд╣рд╛рдБ рддрд╛рд░реНрдХрд┐рдХ рд╕рдорд╛рдзрд╛рди,
JSON рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╕рд░реНрд╡рд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ 2 рдкреИрд░рд╛рдореАрдЯрд░ рд╣реЛрдВрдЧреЗ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкрд╣рд▓рд╛ рдмреВрд▓рд┐рдпрди рд╣реИ, рдЬреЛ рдлреЙрд░реНрдо рд╕рддреНрдпрд╛рдкрди рдХреА рд╕рдлрд▓рддрд╛ рдпрд╛ рд╡рд┐рдлрд▓рддрд╛ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдЧрд╛ред рджреВрд╕рд░реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде, рдлрд┐рд░ рд╕реЗ рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ:
- рдПрдХ рд╕рдлрд▓ рдлрд╝реЙрд░реНрдо рд╕рддреНрдпрд╛рдкрди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдкреИрд░рд╛рдореАрдЯрд░ рдЦрд╛рд▓реА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд▓реЙрдЧрд┐рди рдлрд╝реЙрд░реНрдо рд▓реЙрдЧ-рдЗрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЖрд╡рд╢реНрдпрдХ url рдкрд░ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдХреНрдпрд╛ рд╣реИ, рдпрд╛ рдпрд╣ рдПрдХ рдкрдВрдХреНрддрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИ рдЬрд┐рд╕реЗ рдкреБрд╖реНрдЯрд┐ рд╕рдВрд╡рд╛рдж рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
- рдорд╛рдорд▓реЗ рдореЗрдВ рдЬрдм рдлреЙрд░реНрдо рдореЗрдВ рдлрд┐рд░ рд╕реЗ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реЛрддреА рд╣реИрдВ, рддреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ 2 рд╕рдВрднрд╛рд╡рд┐рдд рддрд░реАрдХреЗ рд╣реИрдВ:
- рдкрд╣рд▓рд╛ рддрд░реАрдХрд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдлреЙрд░реНрдо рдХреЛ рдлрд┐рд░ рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рд╣реИ рдФрд░ рд╕рдВрдкреВрд░реНрдг HTML рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рдПрдХ рдЬреЗрдиреНрд╕ рдЪрд░ рдореЗрдВ рдбрд╛рд▓рдирд╛ рд╣реИ, рдЬреЛ рддрдм рдкреВрд░реЗ рдлреЙрд░реНрдо рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред
- рджреВрд╕рд░рд╛ рддрд░реАрдХрд╛ рдлреЙрд░реНрдо рдХреЗ рд╕рднреА рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рдмрдирд╛рдирд╛ рдФрд░ рдЗрд╕реЗ рдПрдХ рдЬрд╕рди рдЪрд░ рдореЗрдВ рд░рдЦрдирд╛ рд╣реИ, рдлрд┐рд░ рд▓реВрдк рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдХреНрд╖реЗрддреНрд░ рдХреЗ рд▓рд┐рдП рдЖрдЙрдЯрдкреБрдЯ рддреНрд░реБрдЯрд┐рдпреЛрдВред
рдореБрдЭреЗ рд╡реИрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рджреВрд╕рд░рд╛ рд╡рд┐рдХрд▓реНрдк рдкрд╕рдВрдж рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рд╡рд╣реА рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдЪрд╛рд╣рд┐рдП, рдкреВрд░реЗ рдлреЙрд░реНрдо рдХреЛ рдмрджрд▓реЗ рдмрд┐рдирд╛ред рдпрд╣рд╛рдВ рдореИрдВ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ рдХрд┐ рджреЛрдиреЛрдВ рддрд░реАрдХреЛрдВ рдХреЛ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПред рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рдлреЙрд░реНрдо рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреЛрдб рд▓реЛрдХрдкреНрд░рд┐рдп
jQuery рдЬреЗрдПрд╕ рдлреНрд░реЗрдорд╡рд░реНрдХ рдФрд░ рдПрдХ рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ
jQuery рдлреЙрд░реНрдо рдкреНрд▓рдЧрд┐рди рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
- рдкрд╣рд▓рд╛ рддрд░реАрдХрд╛:
рджреЗрдЦрдиреЗ рдХрд╛ рдЕрдВрддрд┐рдо рд╕рдВрд╕реНрдХрд░рдг:
def register(request): if request.method == 'POST': form = RegisterForm(request.POST) if form.is_valid():
рдЧреНрд░рд╛рд╣рдХ рдкрдХреНрд╖ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ:
$(document).ready(function() { $('#register').live('click', function() { $('#register_form').ajaxSubmit({ success: function(data, statusText, xhr, $form) {
- рджреВрд╕рд░рд╛ рддрд░реАрдХрд╛:
рджреЗрдЦрдиреЗ рдХрд╛ рдЕрдВрддрд┐рдо рд╕рдВрд╕реНрдХрд░рдг:
def register(request): if request.method == 'POST': form = RegisterForm(request.POST) if form.is_valid():
рдЧреНрд░рд╛рд╣рдХ рдкрдХреНрд╖ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ:
function display_form_errors(errors, $form) { for (var k in errors) { $form.find('input[name=' + k + ']').after('<div class="error">' + errors[k] + '</div>'); } } $(document).ready(function() { $('#register').live('click', function() { $('#register_form').ajaxSubmit({ success: function(data, statusText, xhr, $form) {
рдпрд╣ рднреА рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдкрд╣рд▓реЗ рд╡рд░реНрдгрд┐рдд рджреВрд╕рд░реА рд╡рд┐рдзрд┐ рдФрд░ рдлреЙрд░реНрдо рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ
<ul> рд╕реВрдЪреА рддрддреНрд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рджреВрд╕рд░реЗ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреНрдп рдЯреЗрдореНрдкрд▓реЗрдЯ рдмрдирд╛рдирд╛ рдпрд╛ рдлреЙрд░реНрдо рдХреЗ рд▓рд┐рдП рддреНрд░реБрдЯрд┐ рд╡рд░реНрдЧ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред
рд╡рд╣ рд╕рдм рд╣реИред рдореИрдВ рд╡рд┐рднрд┐рдиреНрди рд░рд╛рдЬреНрдпреЛрдВ рдореЗрдВ рдкрд░рд┐рдгрд╛рдореА рдлреЙрд░реНрдо рдХреЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд╕рдВрд▓рдЧреНрди рдХрд░рддрд╛ рд╣реВрдВ:

рдореБрдЭреЗ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рд╕реБрдирдиреЗ рдФрд░ рдЕрдиреНрдп рддрд░реАрдХреЛрдВ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рд╕реАрдЦрдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреАред