рдЬрдм рдЖрдк рдХреНрд░реЛрдо рдХреЛ рдСрдЯреЛрдлрд┐рд▓ рдЯреЗрдХреНрд╕реНрдЯ рдлрд╝реАрд▓реНрдб рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдлреНрд▓реЛрдЯрд┐рдВрдЧ рд▓реЗрдмрд▓ рдЯреЗрдХреНрд╕реНрдЯ рдЪреЗрддрди рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ (0.8.0 рдХреЗ рдЕрдиреБрд╕рд╛рд░) рджрд┐рдЦрд╛рддрд╛ рд╣реИ
рдпрд╣ рд╢рд╛рдпрдж рдПрдХ рдЕрдЪреНрдЫреА рдЬрдЧрд╣ рд╣реИ ...
@illogikal рдХреНрдпрд╛ рдЖрдк gif рдХреА рдкреЛрд╕реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
рд╣реЗрдпрд░ рдпреВ рдЧреЛ:
рдкреАрд▓рд╛ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЦреЗрддреЛрдВ рдХреЛ рд╕реНрд╡рдд: рд╕реНрдлреВрд░реНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдкрд╛рд╕рд╡рд░реНрдб рднрд░рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд▓реЗрдмрд▓ рдЕрднреА рднреА рд╣реИред
рдордо, рдпрд╣ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИред @mbrookes рдХреНрдпрд╛ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рд╕рднреА рдЗрдирдкреБрдЯ рдкреНрд░рдХрд╛рд░реЛрдВ рдпрд╛ рдХреЗрд╡рд▓ рдкрд╛рд╕рд╡рд░реНрдб рдЗрдирдкреБрдЯ рдХреЗ рд▓рд┐рдП рд╣реИ?
рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ - рдореИрдВрдиреЗ рдкрддреЗ рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рдХреНрд░рдо рдХреЛ рд╕реНрд╡реИрдк рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдСрдЯреЛрдлрд╝рд┐рд▓ рдиреЗ рдЖрдЧ рдирд╣реАрдВ рд▓рдЧрд╛рдИ, рдпрд╛ рддреЛ рдПрдХ рдЬреНрдЮрд╛рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ / рдкрд╛рд╕рд╡рд░реНрдб рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╛ рдПрдХ рдирдпрд╛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдПред рдореБрдЭреЗ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдЕрдиреНрдп рдХреНрд╖реЗрддреНрд░реЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдХрд┐рддрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реИред
рдареАрдХ рд╣реИ, рдореИрдВ рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХреБрдЫ TextField рдХреЗ рд╕рд╛рдорд╛рди рдХреЛ рдлрд┐рд░ рд╕реЗ рднрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореИрдВ рднреА рдереЛрдбрд╝рд╛ рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдБрдЧрд╛ред рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдЕрдЧрд░ рддреБрдо рдХреБрдЫ рдФрд░ рдиреЛрдЯрд┐рд╕ред
рдирдорд╕реНрдХрд╛рд░! рд╣рдо рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдЪрд▓ рд░рд╣реЗ рд╣реИрдВред рдХреНрдпрд╛ рдЗрд╕рдХреЗ рд▓рд┐рдП w / рдХреБрдЫ рд╕рдВрднрд╛рд╡рд┐рдд рд╕реБрдзрд╛рд░реЛрдВ рдХреЛ рдЖрдЬрд╝рдорд╛рдиреЗ рдФрд░ рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдо рдХреБрдЫ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдпрд╛ рдлрд┐рд░ рд░рд┐рдлреНрд▓реЗрдХреНрдЯрд░ рдкрд░ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рдкрдбрд╝ рд░рд╣рд╛ рд╣реИ?
рд╣рдореЗрдВ рдКрдкрд░ рд╕реВрдЪреАрдмрджреНрдз рдкрд╛рд╕рд╡рд░реНрдб рдлрд╝реАрд▓реНрдб рдореЗрдВ рд╕рдЯреАрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо рдПрдХ рд╕рд╛рджреЗ TextField
рд╕рд╛рде рдПрдХ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕рдВрдХреЗрдд рдкрд╛рда рд╕реЗрдЯ рд╣реИ рдЬреЛ рдпрджрд┐ рдЖрдк рдореВрд▓реНрдпреЛрдВ рдХреЛ рдЯрд╛рдЗрдк рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЪрд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЬрдм рд╣рдо рдкреГрд╖реНрда рд░реЗрдВрдбрд░ (рдЧрд╣рд░рд╛ рд▓рд┐рдВрдХ) рдХрд╛ рдореВрд▓реНрдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рддреЛ рд╕рдВрдХреЗрдд рдкрд╛рда рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдореВрд▓реНрдп рдХреЗ рдкреАрдЫреЗ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред рдХреНрдпрд╛ рдпрд╣ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рд╣реИ рдпрд╛ рдпрд╣ рдХреБрдЫ рдЕрд▓рдЧ рд╣реЛрдЧрд╛?
рдХреНрдпрд╛ рдпрд╣ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рд╣реИ рдпрд╛ рдпрд╣ рдХреБрдЫ рдЕрд▓рдЧ рд╣реЛрдЧрд╛?
рдпрд╣ рдПрдХ рдЕрд▓рдЧ рдореБрджреНрджреЗ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИред
рдПрдХ рдЖрдХрд▓рди рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рдгрд╛: https://github.com/appsforartists/gravel/blob/master/src/components/Input.jsx#L208
рдХреЛрдб рдХреЗ рд▓рд┐рдП рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ onChange
рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ state.isAutofilled
Chrome рд╕рдВрд╕реНрдХрд░рдг 49.0.2623.87 (64-рдмрд┐рдЯ) OS X El Capitan
рдпрджрд┐ рдХреЛрдИ рдХреБрдВрдЬреА рджрдмрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрд╛ рдорд╛рдЙрд╕ рдХреНрд▓рд┐рдХ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдпрд╣ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рддреИрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд▓реЛрдб рдЯреВрдЯ рдЧрдпрд╛ рд╣реИред
рд╕рдЯреАрдХ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛:
рдХреЛрдИ рд╡рд┐рдЪрд╛рд░, рджреЛрд╕реНрддреЛрдВ?
рдЗрд╕реА рдореБрджреНрджреЗ рдХрд╛ рдЕрдиреБрднрд╡ред
рдХреНрдпрд╛ рдСрдЯреЛрдлрд┐рд▓ рдХреЛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИ рдЬреЛ рдПрдордпреВрдЖрдИ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?
@ kand617
рдмрд╕ рдХреБрдЫ рдлрд╝реАрд▓реНрдб рдмрдирд╛рдПрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ " рдкреНрд░рджрд░реНрд╢рди: рдХреЛрдИ рдирд╣реАрдВ " рдХреЗ рд╕рд╛рде
рдлрд┐рд░ рдЕрдкрдиреЗ рдЕрд╕рд▓реА рдЦреЗрддреЛрдВ рдХреЛ рдиреАрдЪреЗ рд░рдЦреЗрдВред
http://stackoverflow.com/questions/15738259/disabling-chrome-autofill
рдЖрдЧ рд▓рдЧрдиреЗ рдХреА рдШрдЯрдирд╛ рдХрд╛ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди?
@antoinificseau рдХреНрдпрд╛ рдпрд╣ рдорд╛рд╕реНрдЯрд░ рдореЗрдВ рд╡рд┐рд▓рдп рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ?
@devdlabs https://github.com/callemall/material-ui/pull/3372#issuecomment -191523369
рдпрд╣ рдПрдХ рд╕рдорд╛рди рдореБрджреНрджрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рд╕рдорд╛рди рдореВрд▓ рдХрд╛рд░рдг, рдЕрд▓рдЧ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐?)
рдореИрдВ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдП рдЧрдП рдПрдиреАрдореЗрд╢рди рдореБрджреНрджреЛрдВ рдХреЛ рдирд╣реАрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЯреЗрдХреНрд╕реНрдЯрдлрд┐рд▓реНрдб рдХрдВрдЯреЗрдирд░ рдХреА рдКрдВрдЪрд╛рдИ рдЗрдирдкреБрдЯ рдкрд░ рд╢реАрд░реНрд╖ рдорд╛рд░реНрдЬрд┐рди рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рдирд╣реАрдВ рд░рдЦрддреА рд╣реИред рдпрд╣ TextField рдХрдВрдЯреЗрдирд░ рдХреЗ рдиреАрдЪреЗ 14px рддрдХ рдлреИрд▓реА рд╣реБрдИ рд╣реИред рдпрд╣ рдХрд╛рдлреА рд╕реАрдзрд╛ рдХрд╛рдо рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕реЗ рдХреЗрд╡рд▓ рд╕реНрд╡рдд: рдкреВрд░реНрдгрддрд╛ рдХреЗ рд╕рд╛рде рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ:
рдпрд╣ рдЬрд▓реНрдж рд╣реА рдареАрдХ рд╣реЛ рдЬрд╛рдПрдЧрд╛;)
рдЕрдЪреНрдЫрд╛ @nathanmark , рдзрдиреНрдпрд╡рд╛рдж !!
рдФрд░ рдХреНрдпрд╛ рдЖрдкрдиреЗ рдПрдХ рдлреНрд▓реЛрдЯрд┐рдВрдЧ рд▓реЗрдмрд▓ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИрдХ рдХрд┐рдпрд╛ рдерд╛ рдЬрдм рдХреНрд░реЛрдо рдСрдЯреЛрдлрд┐рд▓реНрд╕ рдХреЛ рдкреЗрдЬ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд┐рдП рдмрд┐рдирд╛ рднреА?
рдпрд╣ рдЕрднреА рднреА рдПрдХ рдмрд╣реБрдд рджрд░реНрджрдирд╛рдХ рдореБрджреНрджрд╛ рд╣реИред
рдореИрдВрдиреЗ рд╡реЗрдирд┐рд▓рд╛-рдСрдЯреЛрдлрд┐рд▓-рдЗрд╡реЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдЬреЛ рдЕрднреА рдХрд╛рдо рдирд╣реАрдВ рдЖрдпрд╛ред
рдореИрдВ redux-form
(рдХрдИ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреА рддрд░рд╣) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдореИрдВ рдПрдХ рдмрджрд╕реВрд░рдд рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЗ рд╕рд╛рде рдЖрдпрд╛ (рдмрд╕ рдЕрдкрдиреЗ рд▓реЙрдЧрд┐рди рдлреЙрд░реНрдо рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдЕрдиреНрдп рд░реВрдкреЛрдВ рдХреА рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рд╣реИ)ред
рдореИрдВрдиреЗ рдЗрд╕реЗ рдХреЗрд╡рд▓ рдХреНрд░реЛрдо рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рд╣реИ рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рд╡рд┐рдЪрд╛рд░рд╛рдзреАрди рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рдЬрдм рдореИрдВрдиреЗ рдПрдХ рдЫрд┐рдкрд╛ рд╣реБрдЖ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдлрд╝реАрд▓реНрдб рдЬреЛрдбрд╝рд╛ рддреЛ рдХреНрд░реЛрдо рдиреЗ рдкреВрд░реЗ рдлреЙрд░реНрдо рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░ рджрд┐рдпрд╛ (рдЬрдм рддрдХ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд╕рд╛рде рдЫрд┐рдкрд╛рдпрд╛ рдирд╣реАрдВ рдЧрдпрд╛: рдХреЛрдИ рднреА рдХреНрд░реЛрдо рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рдХрд░рддрд╛ рдерд╛)ред
рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ 4 (: рдирд┐рд░рд╛рд╢:) рдЕрддрд┐рд░рд┐рдХреНрдд рдХреНрд╖реЗрддреНрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред 2 рдХреНрд░реЛрдо рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рд░реВрдк рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░реЗрдВ (рд╕реНрд╡рдд: рдкреВрд░реНрдг = рдмрдВрдж рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛) рдФрд░ рдХреНрд░реЛрдо рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП 2 рдФрд░ рдПрдХ рдЕрд▓рдЧ рдирдХрд▓реА рд░реВрдк рдореЗрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдШрдЯрдХрдбрд╛рдЗрдорд╛рдЙрдВрдЯ рдореЗрдВ рдореИрдВрдиреЗ рдПрдХ рдЯрд╛рдЗрдордЖрдЙрдЯ рдЬреЛрдбрд╝рд╛ рдерд╛ рдЬреЛ рдирдХрд▓реА рдХреНрд╖реЗрддреНрд░реЛрдВ рд╕реЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдХреЙрдкреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд╕рд▓реА рд╡рд╛рд▓реЗ рдХреА рдирдХрд▓ рдХрд░рддрд╛ рдерд╛ -рдкрд░рд┐рд╡рд░реНрддрди рдкрд░рд┐рд╡рд░реНрддрди рдШрдЯрдирд╛:
class Login extends Component {
// This was tested under chrome only. It's ugly, but it works. Code was modified a bit for simplicity so it might not work out of the box.
componentDidMount() {
// Fix chrome auto-fill
setTimeout(() => {
const { change, dispatch }= this.props;
if (this.refs.usernameAutoFill.value && ! this.refs.username.value) {
dispatch(change('username', this.refs.usernameAutoFill.value));
}
if (this.refs.passwordAutoFill.value && !this.refs.password.value) {
dispatch(change('password', this.refs.passwordAutoFill.value));
}
}, 500);
}
render() {
const styles = {
autofill: {
height: 0,
width: '1px',
position: 'absolute',
left: 0,
top: 0
}
};
return (
<div>
<form style={styles.autofill}>
<input type="text" ref="usernameAutoFill" name="usernameAutoFill" />
<input type="password" ref="passwordAutoFill" name="passwordAutoFill" />
</form>
<form autocomplete="off">
<div style={styles.autofill}><input type="text" name="fakeusername" /><input type="password" name="fakepassword" /></div>
<Field name="username" component={() => <TextField ref="username" name="username" floatingLabelText="Username" />}/>
<Field name="password" component={() => <TextField ref="password" name="password" type="password" floatingLabelText="Password" />}/>
<RaisedButton primary={true} label="Login" type="submit"/>
</form>
</div>
)
}
}
export default {
Form: reduxForm({
form: 'Login'
})(Login)
}
рдореИрдВрдиреЗ рд╕рд░рд▓рддрд╛ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдХреЗрд╡рд▓ рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
@ adamtal3 рдпрд╣ autoComplete="off"
@justinko рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ред рдпрджрд┐ рдЖрдк autoComplete
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ autocomplete
рдмрджрд▓ рдЬрд╛рдПрдЧрд╛ред
рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдореИрдВрдиреЗ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдорд╛рди ( "off"
) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ, рди рдХрд┐ js рдореВрд▓реНрдп ( {'off'}
) рдХрд╛ред
рдпрджрд┐ рдЖрдк рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдорд╛рдирдХреЛрдВ рдФрд░ рдирд┐рд░рдВрддрд░рддрд╛ рдХреА рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдПрдХ рдмрдбрд╝реА рдмрд╛рдд рд╣реИред
рдпрд╣ рдореЗрд░рд╛ рд╕рдорд╛рдзрд╛рди рд╣реИред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ рдЬрд╛рдБрдЪ рдХреА рдХрд┐ рдХреНрдпрд╛ рдШрдЯрдХ рдорд╛рдЙрдВрдЯ рд╣реЛрдиреЗ рдкрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рд╕реНрд╡рдд: рдкреВрд░реНрдг рд╣реИред
рдпрджрд┐ рд╣рд╛рдВ, рддреЛ рдореИрдВ рдкрд╛рд╕рд╡рд░реНрдб рдлрд╝реАрд▓реНрдб рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реВрдВрдЧрд╛ред
рдПрдХ рдмрд╛рд░ hasValue
рд╕рд╣реА рд╣реЛ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдлреНрд▓реЛрдЯрд┐рдВрдЧ рд▓реЗрдмрд▓ рдЕрдкрдбреЗрдЯ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
componentDidMount() {
setTimeout(() => {
if(this.refs.username.getValue()) {
this.refs.password.setState({...this.refs.password.state, hasValue: true})
}
}, 100)
}
рдЙрдореНрдореАрдж рд╣реИ рдХреА рдпрд╣ рдорджрдж рдХрд░реЗрдЧрд╛ред :)
рдореБрдЭреЗ рдлреНрд▓реЛрдЯрд┐рдВрдЧ рд▓реЗрдмрд▓ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдорд┐рд▓рд╛ рдЬрдм рдпрд╣ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рджреНрд╡рд╛рд░рд╛ рднрд░рд╛ рдЧрдпрд╛ рдерд╛ред
`
setTimeout (рдлрд╝рдВрдХреНрд╢рди () {
var рдСрдЯреЛрдлрд╝рд┐рд▓реНрдб = document.querySelectorAll ('рдЗрдирдкреБрдЯ # рдкрд╛рд╕рд╡рд░реНрдб: -webkit-autofill');
рдЕрдЧрд░ (рд╕реНрд╡рддрдГ рдкреВрд░реНрдг) {
редред $ ( "рдЗрдирдкреБрдЯ [рдкреНрд░рдХрд╛рд░ = рдкрд╛рд╕рд╡рд░реНрдб]") рдорд╛рддрд╛-рдкрд┐рддрд╛ () addClass ( "-рдЧрдВрджрд╛ рд╣реИ");
}
}, 500);
`
рдпрд╣ рдЕрдВрдд рдореЗрдВ рддреИрдпрд╛рд░ рдЖрдкрдХреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рдЕрдВрджрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╡рд░реНрдЧ "рд╣реИ-рдЧрдВрджрд╛" рд╡рд╣ рд╡рд░реНрдЧ рд╣реИ рдЬреЛ рдЖрдкрдХреЗ рдлреНрд▓реЛрдЯрд┐рдВрдЧ рд▓реЗрдмрд▓ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИред
рдореИрдВ рдЕрднрд┐рдХреНрд░рд┐рдпрд╛-рдпреВрдЖрдИ рдХреЗ рд╕рд╛рде Redux-form рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореЗрд░реЗ рд▓рд┐рдП рд╕рдорд╛рдзрд╛рди рдЖрд╡рд╢реНрдпрдХ рдЗрдирдкреБрдЯ рдХреЗ рдареАрдХ рдмрд╛рдж рдирдХрд▓реА рдЗрдирдкреБрдЯ рд╣реИред
<TextField
{...password}
type="password"
placeholder={formatMessage(messages.loginPasswordPlaceholder)}
disabled={submitting}
/>
<Icon name="password" className={theme.icon}/>
<input className={theme.hiddenInput} type="password" />
рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд░рд┐рдПрдХреНрдЯ 16 рджреНрд╡рд╛рд░рд╛ рддрдп рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП: https://github.com/facebook/react/issues/7211#issuecomment -266774957
рдЬрдм рдореБрдЭреЗ 0.17.1 рд╕реЗ 0.18.1 рддрдХ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛, рддрдм рднреА рдореЗрд░реЗ рд╕рд╛рде рдРрд╕реА рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реБрдИ
рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░реЗрдВ рдЬреЛ рдареАрдХ рдХрд░реЗрдВ:
class FixedTextField extends Component {
constructor() {
super()
this.state = { value: '' } }
}
textfield = null
componentDidMount() {
requestAnimationFrame(() => {
this.setState({ value: this.textfield.getInputNode().value })
})
}
render() {
return <TextField {...this.props} value={this.state.value} />
}
}
рдлрд┐рдХреНрд╕ рдХрд╛ рдкрд┐рдЫрд▓рд╛ рдкреЛрд░реНрдЯ рд╕рд┐рд░реНрдл рд░рд┐рдПрдХреНрдЯ 15.6.0
рдореЗрдВ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдХреЛрдИ рднреА рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ?
[FYI рдХрд░реЗрдВ: рдКрдкрд░ "рдореБрдЭреЗ рднреА" рдкреЛрд╕реНрдЯ рд╣рдЯрд╛ рджреА рдЬрд╛рдПрдЧреА - рдХреГрдкрдпрд╛ рдЪрд░реНрдЪрд╛ рдХреЗ рдмрдЬрд╛рдп рдкрд▓реНрд╕ рдмрдЯрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред]
@mbrookes рдЬреИрд╕рд╛ рдореИрдВрдиреЗ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛
@Stupidism рд╡рд┐рд╡рд░рдг?
рдареАрдХ рдЙрд╕реА рддрд░рд╣ рдЬреИрд╕реЗ рдЖрдкрдиреЗ 2 рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдерд╛ред https://github.com/callemall/material-ui/issues/718#issuecomment -167445748
@Stupidism рдордЯреЗрд░рд┐рдпрд▓-рдпреВрдЖрдИ рдХрд╛ рдХреМрди рд╕рд╛ рд╕рдВрд╕реНрдХрд░рдг, рд░рд┐рдПрдХреНрдЯ рдХрд╛ рдХреМрди рд╕рд╛ рд╕рдВрд╕реНрдХрд░рдг, рдХреНрдпрд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ / рд╕рдВрд╕реНрдХрд░рдг?
"name": "material-ui",
"version": "0.18.3",
"name": "react",
"version": "15.6.0",
md5-f7a2844706b5476282e07a6c64e29edb
Google Chrome 59.0.3071.86 (Official Build) (64-bit)
OS Linux
JavaScript V8 5.9.211.31
: man_shrugging: рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ @ whtang906 рдХрд╛ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдЕрдм рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рд▓рдЧрддрд╛ рд╣реИред
Redux-form рдХреЗ рд▓рд┐рдП
constructor(props) {
super(props);
// This binding is necessary to make `this` work in the callback
this.refUsername = this.refUsername.bind(this);
this.refPassword = this.refPassword.bind(this);
}
componentDidMount() {
setTimeout(() => {
if(this.usernameRef.getValue()) {
this.passwordRef.setState({...this.passwordRef.state, hasValue: true});
}
}, 100)
}
refUsername(component) {
this.usernameRef = component.getRenderedComponent().refs.component;
}
refPassword(component) {
this.passwordRef = component.getRenderedComponent().refs.component;
}
<Field
name="username"
withRef
ref={this.refUsername}
component={TextField}
/>
<Field
name="password"
type="password"
withRef
ref={this.refPassword}
component={TextField}
/>
рдореЗрд░рд╛ рдРрдк рдереЛрдбрд╝рд╛ рдзреАрдорд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдПрдХ рдмреАрдорд╛ рдЬреЛрдбрд╝рд╛
componentDidMount() {
let times = 0;
const interval = setInterval(() => {
times += 1;
if(this.usernameRef.getValue()) {
this.passwordRef.setState({...this.passwordRef.state, hasValue: true});
clearInterval(interval);
} else if (times >= 10) {
clearInterval(interval);
}
}, 100)
}
рдХреНрд░реЛрдо рдСрдЯреЛрдлрд╝рд┐рд▓реНрдб рдкрд╛рд╕рд╡рд░реНрдб рдлрд╝реАрд▓реНрдб рд╕реЗ рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ
https://stackoverflow.com/questions/35049555/chrome-autofill-autocomplete-no-value-for-password
рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдореИрдВ v1-рдмреАрдЯрд╛ рд╢рд╛рдЦрд╛ рдХреЗ рд╕рд╛рде рдЦреЗрд▓ рд░рд╣рд╛ рд╣реВрдВ, рдореБрджреНрджреЗ рдХреЛ рд░рд╛рд╕реНрддреЗ рдореЗрдВ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рдпрд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдЙрдиреНрдирдпрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдореИрдВ рддрдм рддрдХ рдмрдВрдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬрдм рддрдХ рд╣рдо рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╕реБрдирддреЗред рдпрд╣рд╛рдБ рдЪрд░реНрдЪрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!
рддреНрд░реБрдЯрд┐ рдЕрднреА рднреА рдореМрдЬреВрдж рд╣реИ ...
[email protected]
[email protected]
рдХреНрд░реЛрдо 60.0.3112.90
@artalar рдмрд╕ componentDidMount
рд╕рдорд╛рдзрд╛рди O (тИй_ O) O рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ
@Stupidism рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! рдореИрдВрдиреЗ рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред рд╢рд╛рдпрдж рдЗрд╕рд▓рд┐рдП рдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдЬреНрдпрд╛рджрд╛рддрд░ 1-2 рд╕рд╛рд▓ рдкреБрд░рд╛рдиреЗ рд╣реИрдВ ...
Btw, рдпрд╣ рдмрдЧ рдХреЗрд╡рд▓ рдХреНрд░реЛрдо рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ, рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдареАрдХ рд╣реИ :)
@ рдЗрд╡рд╛рди-рдкрд░реБрд╢реЗрд╡ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд░реЗрдл рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рддреЛ рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реБрдИ рдпрд╛ рдирд╣реАрдВ?
рдпрд╣рд╛рдБ рд╣рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, Im рд╕реНрдерд╛рдиреАрдпрд╕реНрдЯреЛрд░реЗрдЬ рд╕реЗ рдорд╛рдиреЛрдВ рдХреЛ рднрд░рддрд╛ рд╣реИ рдпрджрд┐ рд╡реЗ рдХрдВрдкреЛрдиреЗрдВрдЯрдбрд┐рдорд╛рдЙрдВрдЯ рдкрд░ рдореМрдЬреВрдж рд╣реИрдВ, рдФрд░ рд╕рднреА рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рддреНрд░реБрдЯрд┐ рд╣реИред
рдЕрднреА рднреА рддрдп рд╣реЛрдиреЗ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рд╣реИ ...
рдореИрдВ рдзрд╛рдЧреЗ рдХреЛ рдмрдВрдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдпрд╣ рдореБрджреНрджрд╛ 2 рд╕рд╛рд▓ рдкреБрд░рд╛рдирд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдЕрдм v1-рдмреАрдЯрд╛ рд╢рд╛рдЦрд╛ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдпрджрд┐ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдкреНрд░рдЬрдирди рдЙрджрд╛рд╣рд░рдг рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ v1-рдмреАрдЯрд╛ рд╢рд╛рдЦрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдЦреЛрд▓реЗрдВред
рдЕрдм 3 рд╕рд╛рд▓ рд╣реЛ рдЧрдП рд╣реИрдВред рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЕрднреА рднреА рдирд╡реАрдирддрдо рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдФрд░ рд╕рд╛рдордЧреНрд░реА рдпреВрдЖрдИ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдореМрдЬреВрдж рд╣реИред
@tschaub Haha, ios рдкреЛрдЬрд┐рд╢рди-рдлрд┐рдХреНрд╕реНрдб рдЗрдирдкреБрдЯ рдХреА рддрд░рд╣ рдХреЗрдВрджреНрд░рд┐рдд рд╕рдорд╕реНрдпрд╛ рд╣реЛ рдЬрд╛рддреА рд╣реИред
@tsmirnov рд╕рдордп рдЖрдкрдХреЗ рд▓рд┐рдП рдЕрдЯрдХ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред ЁЯШЬ
рдЗрд╕ рдмрдЧ рдХрд╛ рдПрдХ рд╕реАрдПрд╕рдПрд╕ рд╕рдорд╛рдзрд╛рди рд╣реИ
// Selects label that comes right after the autofilled input
input:-webkit-autofill + label {
// Insert your active label styles
}
рд╣реЗрдпрд░ рдпреВ рдЧреЛ:
рдкреАрд▓рд╛ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЦреЗрддреЛрдВ рдХреЛ рд╕реНрд╡рдд: рд╕реНрдлреВрд░реНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдкрд╛рд╕рд╡рд░реНрдб рднрд░рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд▓реЗрдмрд▓ рдЕрднреА рднреА рд╣реИред
рдореИрдВ рдЙрд╕реА рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
рдЗрд╕ рдмрдЧ рдХрд╛ рдПрдХ рд╕реАрдПрд╕рдПрд╕ рд╕рдорд╛рдзрд╛рди рд╣реИ
// Selects label that comes right after the autofilled input input:-webkit-autofill + label { // Insert your active label styles }
рдХреНрдпрд╛ рдЖрдк рдЗрд╕рдХрд╛ рдорддрд▓рдм рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ?
рдЗрд╕ рдмрдЧ рдХрд╛ рдПрдХ рд╕реАрдПрд╕рдПрд╕ рд╕рдорд╛рдзрд╛рди рд╣реИ
// Selects label that comes right after the autofilled input input:-webkit-autofill + label { // Insert your active label styles }
рдХреНрдпрд╛ рдЖрдк рдЗрд╕рдХрд╛ рдорддрд▓рдм рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ?
: -webkit-autofill рдмреНрд░рд╛рдЙрдЬрд╝рд░ рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡рддрдГрднрд░рдг рдлрд╝реАрд▓реНрдб рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИред рдЗрдирдкреБрдЯ рдХреЗ рдмрдЧрд▓ рдореЗрдВ рдЕрдкрдирд╛ рд▓реЗрдмрд▓ рд░рдЦреЗрдВ рдФрд░ рдЗрд╕реЗ рдЪреБрдиреЗрдВ: -webkit-autofill рдЪрдпрдирдХрд░реНрддрд╛ред рдпрджрд┐ рдЖрдкрдХреЛ рдЕрдзрд┐рдХ рд╕рд╣рд╛рдпрддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддреЛ рдХреГрдкрдпрд╛ рдЕрдкрдиреА рд╡рд░реНрддрдорд╛рди html рд╕рдВрд░рдЪрдирд╛ рд╕рд╛рдЭрд╛ рдХрд░реЗрдВред
рдЗрд╕ рдмрдЧ рдХрд╛ рдПрдХ рд╕реАрдПрд╕рдПрд╕ рд╕рдорд╛рдзрд╛рди рд╣реИ
// Selects label that comes right after the autofilled input input:-webkit-autofill + label { // Insert your active label styles }
рдХреНрдпрд╛ рдЖрдк рдЗрд╕рдХрд╛ рдорддрд▓рдм рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ?
: -webkit-autofill рдмреНрд░рд╛рдЙрдЬрд╝рд░ рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡рддрдГрднрд░рдг рдлрд╝реАрд▓реНрдб рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИред рдЗрдирдкреБрдЯ рдХреЗ рдмрдЧрд▓ рдореЗрдВ рдЕрдкрдирд╛ рд▓реЗрдмрд▓ рд░рдЦреЗрдВ рдФрд░ рдЗрд╕реЗ рдЪреБрдиреЗрдВ: -webkit-autofill рдЪрдпрдирдХрд░реНрддрд╛ред рдпрджрд┐ рдЖрдкрдХреЛ рдЕрдзрд┐рдХ рд╕рд╣рд╛рдпрддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддреЛ рдХреГрдкрдпрд╛ рдЕрдкрдиреА рд╡рд░реНрддрдорд╛рди html рд╕рдВрд░рдЪрдирд╛ рд╕рд╛рдЭрд╛ рдХрд░реЗрдВред
рдЬрд╝рд░реВрд░! рдпрд╣рд╛рдБ рдореЗрд░реА HTML рдХреГрдкрдпрд╛ рдорджрдж рдХрд░реЗрдВред рдзрдиреНрдпрд╡рд╛рдж
https://pastebin.com/yjJCip3r
рдЗрд╕ рдмрдЧ рдХрд╛ рдПрдХ рд╕реАрдПрд╕рдПрд╕ рд╕рдорд╛рдзрд╛рди рд╣реИ
// Selects label that comes right after the autofilled input input:-webkit-autofill + label { // Insert your active label styles }
рдХреНрдпрд╛ рдЖрдк рдЗрд╕рдХрд╛ рдорддрд▓рдм рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ?
: -webkit-autofill рдмреНрд░рд╛рдЙрдЬрд╝рд░ рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡рддрдГрднрд░рдг рдлрд╝реАрд▓реНрдб рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИред рдЗрдирдкреБрдЯ рдХреЗ рдмрдЧрд▓ рдореЗрдВ рдЕрдкрдирд╛ рд▓реЗрдмрд▓ рд░рдЦреЗрдВ рдФрд░ рдЗрд╕реЗ рдЪреБрдиреЗрдВ: -webkit-autofill рдЪрдпрдирдХрд░реНрддрд╛ред рдпрджрд┐ рдЖрдкрдХреЛ рдЕрдзрд┐рдХ рд╕рд╣рд╛рдпрддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддреЛ рдХреГрдкрдпрд╛ рдЕрдкрдиреА рд╡рд░реНрддрдорд╛рди html рд╕рдВрд░рдЪрдирд╛ рд╕рд╛рдЭрд╛ рдХрд░реЗрдВред
рдЬрд╝рд░реВрд░! рдпрд╣рд╛рдБ рдореЗрд░реА HTML рдХреГрдкрдпрд╛ рдорджрдж рдХрд░реЗрдВред рдзрдиреНрдпрд╡рд╛рдж
https://pastebin.com/yjJCip3r
рдЖрдкрдХреЗ рд▓реЗрдмрд▓ рдЗрдирдкреБрдЯ рдХреЗ рдареАрдХ рдмрд╛рдж рдЖрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ html рдХреЗ рд╕рд╛рде рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИред
рд╕реНрд╡рддрдГ рдкреВрд░реНрдг рдЗрдирдкреБрдЯ рдХреЗ рдареАрдХ рдмрд╛рдж рдЕрдкрдиреЗ рд▓реЗрдмрд▓ рдЪреБрдиреЗрдВ рдФрд░ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдП рдЧрдП рдЕрдиреБрд╕рд╛рд░ рдЕрдкрдиреА рд╕рдХреНрд░рд┐рдп рд▓реЗрдмрд▓ рд╢реИрд▓рд┐рдпрд╛рдБ рд╕реЗрдЯ рдХрд░реЗрдВред
.mdl-textfield__input:-webkit-autofill + .mdl-textfield__label {
// Active label styles here
top: -20px; // Just an example
transform: scale(0.75); // Just an example
}
рдЙрд╣, @ рдХрд┐рд╢рди 3 рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЦреЛ рдЧрдП рд╣реИрдВред MDL рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ -> https://github.com/google/material-design-lite/issues/4827 -
(рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдПрдордбреАрдПрд▓ рдЬрд┐рдо рдорд░ рдЪреБрдХрд╛ рд╣реИ, рд╢рд╛рдпрдж рдЖрдк рд╕рдм рдХреЗ рдмрд╛рдж рд╕рд╣реА рдЬрдЧрд╣ рдкрд░ рдЖрдП рд╣реИрдВ!)
рдЖрд╣! рдирд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рдЗрд╕рдХреА рдЙрд▓рдЭрдиред : рд╣рдБрд╕рдирд╛: @mbrookes рдПрдХ рдкреНрд░рд╢реНрди: рдХреНрдпрд╛ рд╣рдо CDN рд▓рд┐рдВрдХ рдХреЗ рд╕рд╛рде HTML рдореЗрдВ рд╕реАрдзреЗ рд╕рд╛рдордЧреНрд░реА UI рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдореБрдЭреЗ рдХрднреА рдирд╣реАрдВ рд▓рдЧрд╛ рдХрд┐ рдПрдордбреАрдПрд▓ рдорд░ рдЪреБрдХрд╛ рд╣реИ: рд░реЛрдирд╛:
@ kishan3 рдЖрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ , рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЬреИрд╕рд╛ рдХрд┐ рдбреЙрдХреНрд╕ рдореЗрдВ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдкреВрд░реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреА рд╣реЛрдЧреА, рдХрдо рд╕реЗ рдХрдо рдкрд╣рд▓реА рдмрд╛рд░ рдЬрдм рддрдХ рдпрд╣ рдХреИрд╢ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдЬрдмрдХрд┐ рдЗрд╕реЗ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдмрдирд╛рдиреЗ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдк рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕реЗ рдШрдЯрдХ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рдЗрд╕рдХрд╛ рдХреНрдпрд╛ рдЙрдкрд╛рдп рд╣реИ?
рдпрд╣ рд╕рдорд╕реНрдпрд╛ v0.x рдХреЛ рдЪрд┐рдВрддрд┐рдд рдХрд░рддреА рд╣реИред
@oliviertassinari рдпрд╣ рд╕реНрдЯрд┐рд▓
рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВ рдПрдХ рдбреНрд░реЙрдкрдбрд╛рдЙрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбреНрд░реЙрдкрдбрд╛рдЙрди рдореЗрдВ рдХреБрдЫ рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИ рддреЛ рдпрд╣ рд░рд╛рдЬреНрдп рдХреЗ рд▓рд┐рдП рдореВрд▓реНрдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдореВрд▓реНрдп рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдЯреЗрдХреНрд╕реНрдЯрдлреАрдб рд▓реЗрдмрд▓ рдХреЛ рдлреНрд▓реЛрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ : рдЬреИрд╕рд╛ рдХрд┐ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ, рдЕрдЧрд░ рдореИрдВ null
рд╕рд╛рде TextField рдорд╛рдиреЛрдВ рдХреЛ рдЕрдВрдХрд┐рдд рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдирдпрд╛ рдорд╛рди рдкрд╛рд░рд┐рдд рд╣реЛрдиреЗ рдкрд░ рдирд╛рд╡ рдирд╣реАрдВ рдЪрд▓реЗрдЧреАред null
рдмрдЬрд╛рдп рдЦрд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рд░рд╛рдЬреНрдп рдореЗрдВ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдХреЗ рдлрд┐рдХреНрд╕реНрдб
рдЕрдЧрд░ рдХреЛрдИ рдЕрднреА рднреА рдпрд╣рд╛рдБ рд╣реИ, рддреЛ рдореИрдВрдиреЗ рдЗрд╕ рдкреНрд░реЛрдк рдХреЛ InputLabelProps={{ shrink: true }}
TextField рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ рдЗрд╕ рдкрд░ рдкреНрд░рднрд╛рд╡
@ рдЯреЙрдо-рдХреЙрди рдзрдиреНрдпрд╡рд╛рдж рдЖрджрдореА, рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛
рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЕрднреА рднреА 2019 рдореЗрдВ рдореМрдЬреВрдж рд╣реИ ...
рдЕрдЧрд░ рдХреЛрдИ рдЕрднреА рднреА рдпрд╣рд╛рдБ рд╣реИ, рддреЛ рдореИрдВрдиреЗ рдЗрд╕ рдкреНрд░реЛрдк рдХреЛ
InputLabelProps={{ shrink: true }}
TextField рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ рдЗрд╕ рдкрд░ рдкреНрд░рднрд╛рд╡
рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрд▓рдЭрди рдореЗрдВ рдерд╛ рдФрд░ рдЖрдкрдиреЗ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рдХрд░ рджреА! рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЕрдиреБрд╢рдВрд╕рд┐рдд рд╕рдорд╛рдзрд╛рди!
рдпрд╣ рдПрдХ v0.x рд╕рдорд╕реНрдпрд╛ (2015) рд╣реИ, рдХреГрдкрдпрд╛ # 14427 рджреЗрдЦреЗрдВред
рдЗрд╕ рдмрдЧ рдХрд╛ рдПрдХ рд╕реАрдПрд╕рдПрд╕ рд╕рдорд╛рдзрд╛рди рд╣реИ
// Selects label that comes right after the autofilled input input:-webkit-autofill + label { // Insert your active label styles }
@ozturkcangokkaya рд╣рд╛рдп рдпрд╣ css рд╕рдорд╛рдзрд╛рди рдХреНрд░реЛрдо рдореЗрдВ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЬрдм рдореИрдВ рдлрд╛рдпрд░рдлреЙрдХреНрд╕ рдореЗрдВ рдЕрдкрдирд╛ рдлреЙрд░реНрдо рдЪреЗрдХ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдлреНрд▓реЛрдЯрд┐рдВрдЧ рд▓реЗрдмрд▓ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рд╣реИ рдХрд┐ рд╡реЗрдмрдХрд┐рдЯ-рдСрдЯреЛрдлрд┐рд▓ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдХреЛ рдХреНрдпреЛрдВ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ?
рдХреГрдкрдпрд╛ v4 рдХреЗ рд▓рд┐рдП # 14427 рджреЗрдЦреЗрдВред
рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рднреМрддрд┐рдХрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрдВ рдФрд░ рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдЖрдкрдХреЛ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЗ рд╕рд╛рде рдЖрдирд╛ рд╣реИ рдФрд░ Google рдХреЛ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдореЗрдВ рдХреЛрдИ рд░реБрдЪрд┐ рдирд╣реАрдВ рд╣реИред
рдЕрдЧрд░ рдХреЛрдИ рдЕрднреА рднреА рдпрд╣рд╛рдБ рд╣реИ, рддреЛ рдореИрдВрдиреЗ рдЗрд╕ рдкреНрд░реЛрдк рдХреЛ
InputLabelProps={{ shrink: true }}
TextField рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ рдЗрд╕ рдкрд░ рдкреНрд░рднрд╛рд╡
рдзрдиреНрдпрд╡рд╛рдж, рдореИрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ: InputLabelProps={{ shrink: form.password }}
, рдФрд░ рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
<TextField
id="loginPassword"
label="Login Password"
type="text"
fullWidth
value={form.password}
onChange={(e) => setAttribute('form.password', e.target.value)}
InputLabelProps={{ shrink: form.password }}
/>
рдореИрдВрдиреЗ рдЕрдкрдиреА рдкреНрд░реЙрдмреНрд▓рдо рдХреЛ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рджрд░реНрдЬ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред рдлрд┐рд░ рдореИрдВрдиреЗ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рдореИрдВ рдЯреЗрдХреНрд╕реНрдЯ рдлреАрд▓реНрдб рдХрдВрдкреЛрдиреЗрдВрдЯ рдХреЛ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рднрд░ рд░рд╣рд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдЬрдм рдореИрдВ рдиреЗрд╕реНрдЯреЗрдб рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рд░рд┐рдбреНрдпреВрдХреНрд╕ рдмрд┐рд╣реЗрд╡рд┐рдпрд░ рдПрдХ рдЬреИрд╕рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрдм рдореИрдВ рджреЛ рдиреЗрд╕реНрдЯреЗрдб рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдорд┐рд▓рд╛рдХрд░ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдирд╣реАрдВ рднрд░ рд░рд╣рд╛ рд╣реВрдВред
рдореИрдВрдиреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдФрд░ рдЗрд╕рд▓рд┐рдП рдпрд╣ рдерд╛ред
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╕рд╛рдордЧреНрд░реА-UI рдХрд╛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг (v4.9.0) рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдЕрдЧрд░ рдХреЛрдИ рдЕрднреА рднреА рдпрд╣рд╛рдБ рд╣реИ, рддреЛ рдореИрдВрдиреЗ рдЗрд╕ рдкреНрд░реЛрдк рдХреЛ
InputLabelProps={{ shrink: true }}
TextField рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ рдЗрд╕ рдкрд░ рдкреНрд░рднрд╛рд╡