Angular.js: рдмрдЧ: рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕: 'рдЖрд╡рд╢реНрдпрдХ' рд╡рд╛рд▓реЗ рдЗрдирдкреБрдЯ рдлрд╝реАрд▓реНрдб рд╕рдмрдорд┐рдЯ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд▓рд╛рд▓ рдЫрд╛рдпрд╛/рд╕реАрдорд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 12 рдЬреВрди 2015  ┬╖  21рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: angular/angular.js

рдлрд╛рдпрд░рдлреЙрдХреНрд╕ 38.0.5
рдПрдВрдЧреБрд▓рд░рдЬреЗрдПрд╕ 1.4.0

input рдлрд╝реАрд▓реНрдб рдХреЛ рдкреЗрдЬреЗрд▓реЛрдб рдкрд░ рд▓рд╛рд▓ рдЕрдорд╛рдиреНрдп рдмреЙрд░реНрдбрд░/рдЫрд╛рдпрд╛ рдорд┐рд▓рддреА рд╣реИ (рдЕрд░реНрдерд╛рдд рдлреЙрд░реНрдо рдЬрдорд╛ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ), рдпрджрд┐ рддреАрдиреЛрдВ рд╢рд░реНрддреЗрдВ рдкреВрд░реА рд╣реЛрддреА рд╣реИрдВ:

  • ng-app рдкрд░рд┐рднрд╛рд╖рд┐рдд
  • ng-model рдХрд┐рд╕реА рднреА рдирд╛рдо рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВ
  • required рд╡рд┐рд╢реЗрд╖рддрд╛ рдореМрдЬреВрдж рд╣реИ

рдпрд╣рд╛рдБ рдПрдХ рдкрд╣реЗрд▓реА рд╣реИ: https://jsfiddle.net/5yh58orm/11/

рдХреНрд░реЛрдо 43.0 рдФрд░ рдЗрдВрдЯрд░рдиреЗрдЯ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ 11 рдореЗрдВ (рдЙрдореНрдореАрдж рдХреЗ рдореБрддрд╛рдмрд┐рдХ) рдХреЛрдИ рд╕реАрдорд╛ рдирд╣реАрдВ рд╣реИред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдХрд┐рд╕реА рдФрд░ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд░реЛрдХрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реНрдЯрд╛рдЗрд▓ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

:-moz-ui- рдЕрдорд╛рдиреНрдп: рдирд╣реАрдВ (рдЖрдЙрдЯрдкреБрдЯ) {
рдмреЙрдХреНрд╕-рдЫрд╛рдпрд╛: рдХреЛрдИ рдирд╣реАрдВ;
}

(рдЬрд╛рд╣рд┐рд░ рд╣реИ рдХрд┐ рдЖрдЙрдЯрдкреБрдЯ рддрддреНрд╡ рдкрд░ рдирд╣реАрдВ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИ)ред

рд╕рднреА 21 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рдХрд┐ рдХреЛрдгреАрдп рдХреЗ рд╕рд╛рде рд▓реЗрдХрд┐рди рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ
http://stackoverflow.com/questions/3809146/firefox-4-required-input-form-red-border-outline

@timjacobi : рдЖрдкрдХрд╛ рд▓рд┐рдВрдХ рд▓рд╛рд▓ рдЫрд╛рдпрд╛ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ _entirely_ (рдпрд╛рдиреА рдлреЙрд░реНрдо рдЬрдорд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рднреА)ред рдореБрдЭреЗ рдорд┐рд▓реА рдПрдХрдорд╛рддреНрд░ (рдХреНрд░рдордмрджреНрдз) рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдЪрд░реНрдЪрд╛ рдпрд╣рд╛рдВ рд╣реИ: http://stackoverflow.com/questions/17209057/firefox-draws-red-border-on-required-select-box/30812303

рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡: рдЬреИрд╕реЗ рд╣реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдлреЙрд░реНрдо рдЬрдорд╛ рдХрд░рддрд╛ рд╣реИ, рдХрдХреНрд╖рд╛ ng-submitted (рдпрд╛ рд╕рдорд╛рди) рд▓рд╛рдЧреВ рдХрд░реЗрдВред

рдХрд╛рд░рдг: рдХрд╣реАрдВ рдФрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рд╕рдмрдорд┐рдЯ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╕рдордп, рдПрдирдЬреА-рдХрдХреНрд╖рд╛рдПрдВ рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ рдмрджрд▓рддреА рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рд╕реНрдерд┐рддрд┐ "рдлреЙрд░реНрдо рдЕрднреА рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛" рдФрд░ рд╕реНрдерд┐рддрд┐ "рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рдкрд╣рд▓реЗ рд╣реА рд╕рдмрдорд┐рдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИ" рдХреЛ рд╕реАрдПрд╕рдПрд╕ рдореЗрдВ рдЕрд▓рдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рднреА рдХрд╛рдордХрд╛рдЬ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ:
.ng-untouched.ng-invalid-required { box-shadow:none; }

(рдореИрдВ рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬрд╣рд╛рдВ novalidate _not_ рд╕реЗрдЯ рд╣реИ; рдпрд╛рдиреА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреА рдЖрдВрддрд░рд┐рдХ рд╕рддреНрдпрд╛рдкрди рдХреЛ рдмрдирд╛рдП рд░рдЦрдирд╛ред)

рдЖрдкрдХреЛ рдореВрд▓ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рддреНрдпрд╛рдкрди рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЙрджрд╛. <form novalidate>

рдЪрд▓реЛ, рдпрд╣ рдХрд┐рд╕ рддрд░рд╣ рдХрд╛ рдЬрд╡рд╛рдм рд╣реИ?
рдореИрдВ рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдХрд╣ рд╕рдХрддрд╛ рдерд╛ ......

рдЕрдм, рдЧрдВрднреАрд░рддрд╛ рд╕реЗ, рдХреНрдпрд╛ AngularJS рдХреЗ рд▓рд┐рдП рдореВрд▓ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рддреНрдпрд╛рдкрди рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдирд╛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ _system рдЖрд╡рд╢реНрдпрдХрддрд╛_ рд╣реИ? рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рд╕рд┐рдлрд╛рд░рд┐рд╢ рдереА?

рдореЗрд░реА рд░рд╛рдп рдореЗрдВ рдореВрд▓ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рддреНрдпрд╛рдкрди рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд╡реИрдз рдХрд╛рд░рдг рд╣реИрдВ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдбрд┐рдЬрд╛рдЗрди/рд╕реНрдЯрд╛рдЗрд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд░реЗрд╢рд╛рди рдирд╣реАрдВ рд╣реЛрдирд╛ред AngularJS рдХреЛ _reduce_ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдмрдврд╝рд╛рд╡рд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕реЗ _increase_ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ (рд╣реЛрдордкреЗрдЬ рд╕реЗ: "рдХрдо рдХреЛрдб рд▓рд┐рдЦреЗрдВ, рдЬрд▓реНрджреА рд╣реА рдмреАрдпрд░ рдкреАрдПрдВред")ред рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдареАрдХ рдирд╣реАрдВ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ "рдЕрдзрд┐рдХ рдХреЛрдб рд▓рд┐рдЦреЗрдВ" рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИ...

рддреЛ рдХреГрдкрдпрд╛ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓реЗрдВред

@ThomasLandauer рдореИрдВ рдЖрдкрдХреЛ рдпрд╣ рдмрддрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ рдФрд░ рдХреНрдпрд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдореЗрдВ рдПрдХ рдЗрдирдкреБрдЯ рдлрд╝реАрд▓реНрдб рдкрд░ require рдбрд╛рд▓рддреЗ рд╣реИрдВ рддреЛ рд╡рд╣реА рд▓рд╛рд▓ рд╕реАрдорд╛ рдореМрдЬреВрдж рд╣реЛрддреА рд╣реИ, рдпрд╣ рдПрдХ рдХреЛрдгреАрдп рдРрдк рдирд╣реАрдВ рд╣реИред рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рдпрд╣ рдПрдВрдЧреБрд▓рд░ рдХреЗ рд╕рд╛рде рдПрдХ рдореБрджреНрджрд╛ рдХреНрдпреЛрдВ рд╣реИ рдФрд░ рдпрд╣рд╛рдВ рдЦреЛрд▓рд╛ рдЧрдпрд╛ рд╣реИ? рдЖрдкрдХреЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдХреЛрдгреАрдп рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреНрдпрд╛ рд╣реИ?

рдореБрдЭреЗ рдЗрд╕реЗ рдЦреЛрд▓рдиреЗ рджреЗрдВ рдФрд░ рдпрд╣ рджреЗрдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЗрд╕ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рд╕реАрдорд╛ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ

рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ: рд▓рд╛рд▓ рд╕реАрдорд╛ рдХреЗрд╡рд▓ рддрднреА рд╣реЛрддреА рд╣реИ рдЬрдм рд╕рднреА _three_ рд╢рд░реНрддреЗрдВ рдкреВрд░реА рд╣реЛрддреА рд╣реИрдВ (рдпрд╛рдиреА AngularJS рд╕рдХреНрд░рд┐рдп рд╣реИ): рдмреЗрд▓рд╛ рджреЗрдЦреЗрдВ, ng-model рдирд┐рдХрд╛рд▓реЗрдВ рдФрд░ рдкреБрдирдГ рд▓реЛрдб рдХрд░реЗрдВ (F5 рдХрднреА-рдХрднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, Ctrl+F5 рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ) => рд▓рд╛рд▓ рд╕реАрдорд╛ рдЪрд▓реА рдЧрдИ рд╣реИ! рддреЛ рдпрд╣ _is_ рдПрдХ рдХреЛрдгреАрдп рдореБрджреНрджрд╛ рд╣реИред

@ThomasLandauer рдпрд╣ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдХреЛрдб рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддрддреНрд╡ рдорд╛рди рд╕реЗрдЯ рдХрд░рддреЗ рд╕рдордп рдлреЙрд░реНрдо рд╕рддреНрдпрд╛рдкрди рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдорд╛рди рд╡рд░реНрддрдорд╛рди рдорд╛рди рдХреЗ рд╕рдорд╛рди рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП #12106 рдмрдирд╛рдпрд╛ рдЧрдпрд╛, рд▓реЗрдХрд┐рди рдлрд┐рдХреНрд╕ рдХреЗрд╡рд▓ jqLite рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░реЗрдЧрд╛ (jQuery рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА)ред

рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдХреЛрдгреАрдп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдХреЛрдгреАрдп рдореБрджреНрджрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдгреАрдп рдХреЗ рдмрд┐рдирд╛ рд╕рдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред

рдЕрднреА рднреА рд╕рдВрджреЗрд╣ рдореЗрдВ? рдХрд┐рд╕реА рднреА рдХреЛрдгреАрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рдЕрджреНрдпрддрди рдкрд╣реЗрд▓реАред
https://jsfiddle.net/5yh58orm/14/

https://jsfiddle.net/5yh58orm/17/ рдЙрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ рдЬрд┐рд╕реЗ @timjacobi рдиреЗ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рд╕рдорд╕реНрдпрд╛ рд╣реИ

рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡: рдЬреИрд╕реЗ рд╣реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдлреЙрд░реНрдо рдЬрдорд╛ рдХрд░рддрд╛ рд╣реИ, рдПрдирдЬреА-рд╕рдмрдорд┐рдЯ (рдпрд╛ рд╕рдорд╛рди) рд╡рд░реНрдЧ рд▓рд╛рдЧреВ рдХрд░реЗрдВред

рдПрдлрдбрдмреНрд▓реНрдпреВрдЖрдИрдбрдмреНрд▓реНрдпреВ, рд╡рд╣рд╛рдВ _IS_ рдПрдХ ng-submitted рд╡рд░реНрдЧ рд╣реИ рдФрд░ рдЗрд╕реЗ рд╕рдмрдорд┐рдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдлреЙрд░реНрдо рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддрд╛рдХрд┐ рдЖрдк рдЗрд╕реЗ рдЕрдкрдиреЗ рдЗрдирдкреБрдЯ рдХреЛ рд╕реНрдЯрд╛рдЗрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХреЗрдВред

@lgalfaso : рдореИрдВ рдЗрд╕реЗ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рдХрд╣реВрдВрдЧрд╛, рдмрд▓реНрдХрд┐ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдФрд░ рдЕрдиреБрд▓рдЧрд░ рдХреЗ рдмреАрдЪ рдПрдХ _incompability_ ;-) рд▓реЗрдХрд┐рди рд╡реИрд╕реЗ рднреА, рджреВрд╕рд░реЗ рдореБрджреНрджреЗ рдХреЛ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж !! :-)

@gkalpak : рд╣рд╛рдБ, рдзрдиреНрдпрд╡рд╛рдж, рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдЗрд╕ рдмреАрдЪ ;-) рд▓реЗрдХрд┐рди: ng-submitted рдХреЗрд╡рд▓ рдлреЙрд░реНрдо _actually_ рд╕рдмрдорд┐рдЯ рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж рд╣реА рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ (рдпрд╛рдиреА рдЙрд╕ рд╕рдордп рдореЗрдВ рдЬрд╣рд╛рдВ рдХреЛрдИ рд╕рддреНрдпрд╛рдкрди рдФрд░ рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрдкреНрд░рдЪрд▓рд┐рдд рд╣реИ)ред рдореИрдВ рдЙрд╕ рдХреНрд╖рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рдЕрд╕рдлрд▓ рд░реВрдк рд╕реЗ _try_ рд╕рдмрдорд┐рдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ред рдпрд╣ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдХреЛрдгреАрдп рдПрдХ рд╡рд░реНрдЧ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ - рдПрдХ рдмреЗрд╣рддрд░ рд╡рд░реНрдЧ рдХрд╛ рдирд╛рдо рд╢рд╛рдпрдж ng-unsuccessful-submit ред

@ThomasLandauer , рдореИрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ рдХрд┐ рдЕрд╕рдлрд▓ рд╕рдмрдорд┐рдЯ рдХрд░рдиреЗ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХрдХреНрд╖рд╛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдкрдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИред

рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдЗрд╕реНрддреЗрдорд╛рд▓/рдЖрд╡рд╢реНрдпрдХ рд╡рд┐рдХрд▓реНрдк рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдХрдИ рд▓реЛрдЧреЛрдВ рдиреЗ рд╡рд┐рднрд┐рдиреНрди рд╡рд░реНрдЧреЛрдВ рдХреЛ ngModelController / formController рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рд╣реИ рддрд╛рдХрд┐ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреА рдШрдЯрдирд╛рдУрдВ (рдЬреИрд╕реЗ рдлреЛрдХрд╕) рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред
рдХреЛрдгреАрдп рдиреЗ рдХреБрдЫ рдРрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдП рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдорддреМрд░ рдкрд░ рдЙрдкрдпреЛрдЧреА рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЬреИрд╕реЗ ng-dirty / ng-pristine , ng-touched / ng-untouched , ng-submitted ), рд▓реЗрдХрд┐рди рдпрд╣ рд╕рднреА рдЙрдкрдпреЛрдЧрдХреЗрд╕ рдХреЛ рдХрд╡рд░ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рдмрд╣реБрдд рд╕реЗ рд╡рд░реНрдЧреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред

рдЙрд╕ рдиреЗ рдХрд╣рд╛, рдХреЛрд░ рдХреЗ рдмрд╛рд╣рд░ рдХрд┐рд╕реА рднреА рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред

рд╣рд╛рдБ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЖрдк рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ _everything_ ;-) рдХреЗ рд▓рд┐рдП рдХрдХреНрд╖рд╛ рдирд╣реАрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ

рд▓реЗрдХрд┐рди рдЖрдо рддреМрд░ рдкрд░, рдореИрдВ рд╕реНрд╡-рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдкрд░ рджреЗрд╢реА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдмреЗрд╣рддрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрднрд╡ рджреЗрддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ: рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдореВрд▓ рд▓рд╛рд▓ рдЫрд╛рдпрд╛ рдФрд░ рдкреЙрдкрдЕрдк рдЯреВрд▓рдЯрд┐рдк рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ рдЙрдиреНрд╣реЛрдВрдиреЗ рд╢рд╛рдпрдж рдЗрд╕реЗ рд╕реМ рдмрд╛рд░ рдкрд╣рд▓реЗ рджреЗрдЦрд╛ рд╣реИ), рдореЗрд░рд╛ рдбрд┐рдЬрд╝рд╛рдЗрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдирдпрд╛ рд╣реИред

рдЦреИрд░, рдорд╛рдорд▓рд╛ рд╡реИрд╕реЗ рднреА рдлрд╛рдЗрд▓ рдкрд░ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЛ рднреА рдпрд╣ рдЪрд╛рд╣рд┐рдП, рддреЛ рдХреГрдкрдпрд╛ рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЫреЛрдбрд╝ рджреЗрдВред рдФрд░ рдЕрдЧрд░ рдореИрдВ рдЕрдХреЗрд▓рд╛ рд╣реВрдВ, рддреЛ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓ рдЬрд╛рдУ ;-)

рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! рдпрд╣ рдЕрдм рдЯреЗрдХреНрд╕реНрдЯ рдХреНрд╖реЗрддреНрд░ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рднреА рдЗрдирдкреБрдЯ рдлрд╝реАрд▓реНрдб рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдХреНрдпрд╛ рдЖрдк рдЗрд╕реЗ рднреА рдареАрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

[рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ] рдореИрдВрдиреЗ рдЗрд╕ рд╕реАрдПрд╕рдПрд╕ рд╢реИрд▓реА рдХреЛ рдЕрдкрдиреЗ рд╕рднреА рдЯреЗрдХреНрд╕реНрдЯ рдХреНрд╖реЗрддреНрд░ рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдХреЗ рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рддрдп рдХрд┐рдпрд╛ рд╣реИ:
рдмреЙрдХреНрд╕- рдЫрд╛рдпрд╛: рдХреЛрдИ рдирд╣реАрдВ

@eyahlin , рдЪреВрдВрдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ рдмрдВрдж рд╣реИ, рдХреГрдкрдпрд╛ рдПрдХ рдирдпрд╛ рдЦреЛрд▓реЗрдВ (рдпрджрд┐ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛ рддреЛ рдЗрд╕реЗ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░реЗрдВ)ред рд╕рд╛рде рд╣реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд▓рд╛рдЗрд╡ рдбреЗрдореЛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рд╕реЗ рдмрд╣реБрдд рдорджрдж рдорд┐рд▓рддреА рд╣реИ: рд╕реНрдорд╛рдЗрд▓реА:

рдзрдиреНрдпрд╡рд╛рдж!

рдореИрдВрдиреЗ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ рд╕рдмрдорд┐рдЯ рдХреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдЗрд╕реЗ рдХреЛрдгреАрдп рдХреЗ рдмрд╛рд╣рд░ рдЕрдиреБрднрд╡ рдХрд┐рдпрд╛ рд╣реИ:
https://bugzilla.mozilla.org/show_bug.cgi?id=1399046

рдХреЛрдгреАрдп 2 рдореЗрдВ рдкреНрд░рд╛рдЗрдореЗрдВрдЧ рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рдмрд╛рддред рдордЬрдмреВрдд рдкреНрд░рд╛рдЗрдореЗрдВрдЧ рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд┐рдВрджреБ рдХреЛ рдПрдХ рдпрд╛ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рджреЛ, рддреАрди рд╡рд░реНрдЧреЛрдВ рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрдирдХреЗ рдмрд╛рдж рджреЛ рд╕реЗрд▓реНрдл рдХреНрд▓рд╛рд╕ рд▓рдЧрд╛рдПрдВ, рдХреБрдЫ рдкреНрд░рд╛рдЗрдореЗрдВрдЧ рдХреНрд▓рд╛рд╕ рд▓рдЧрд╛рдПрдВ
.overwriteclass .overwriteclass2 .ng-valid[required], .ng-valid.required {
рд╕реАрдорд╛: 1px рдареЛрд╕ #e1ea06 !рдорд╣рддреНрд╡рдкреВрд░реНрдг;
рдмреЙрдХреНрд╕-рдЫрд╛рдпрд╛: 0 0 3px #e1ea06!;
}

рдкреБрд╖реНрдЯрд┐ рдХреА рдпрд╣ рдХреЛрдгреАрдп рдХреЗ рдмрд╛рд╣рд░ рд╣реИ, рдореИрдВ рдЗрд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдФрд░ рд╕рд╛рдордЧреНрд░реА-рдпреВрдЖрдИ (рдлреЙрд░реНрдореА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ) рдХреЗ рд╕рд╛рде рд░рдЦ рд░рд╣рд╛ рд╣реВрдВред

рдХрд┐рд╕реА рдФрд░ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд░реЛрдХрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реНрдЯрд╛рдЗрд▓ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

:-moz-ui- рдЕрдорд╛рдиреНрдп: рдирд╣реАрдВ (рдЖрдЙрдЯрдкреБрдЯ) {
рдмреЙрдХреНрд╕-рдЫрд╛рдпрд╛: рдХреЛрдИ рдирд╣реАрдВ;
}

(рдЬрд╛рд╣рд┐рд░ рд╣реИ рдХрд┐ рдЖрдЙрдЯрдкреБрдЯ рддрддреНрд╡ рдкрд░ рдирд╣реАрдВ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИ)ред

<form novalidate ...> ... </form> include novalidate otherwise you have to manually reset form. Such as using jquey $('.your-form-class').trigger("reset");

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

piu picture piu  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

tdumitrescu picture tdumitrescu  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ceymard picture ceymard  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

kishanmundha picture kishanmundha  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

th0r picture th0r  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ