рдЬрдм рдЯреЗрдХреНрд╕реНрдЯ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдмреЙрдХреНрд╕ рд▓реЛрдб рдкрд░ рдкрд╛рда рдмреЙрдХреНрд╕ рдХреЛ рднрд░рддрд╛ рд╣реИ, рддреЛ рдЯреЗрдХреНрд╕реНрдЯрдлрд╝рд┐рд▓реНрдб рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдПрдХ рдкреНрд░рджрд░реНрд╢рди рдореБрджреНрджрд╛ рд╣реЛрддрд╛ рд╣реИред рдСрдЯреЛ рднрд░рд╛ рд╣реБрдЖ рдкрд╛рда рд▓реЗрдмрд▓ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░рддрд╛ рд╣реИред рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдХреЗ рдиреАрдЪреЗ рджреЗрдЦреЗрдВред
рдСрдЯреЛ рднрд░реЗ рдкрд╛рда рдХреЗ рд▓рд┐рдП рдкреАрд▓реЗ рд░рдВрдЧ рдХреА рдкреГрд╖реНрдарднреВрдорд┐ рдкрд░ рднреА рдзреНрдпрд╛рди рджреЗрдВ, рдХреНрдпрд╛ рдЗрд╕реЗ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?
рдореАрдпреВрдЖрдИ рд╕рдВрд╕реНрдХрд░рдг 3.9.2
рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ! # 14453 рд╕рдорд╕реНрдпрд╛ рдХреЛ рджреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рддрд░реАрдХреЗ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реИред
@garygrubb рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ, рдХреНрдпрд╛ рдЖрдк рдПрдХ рдкреНрд░рдЬрдирди рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдо рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдЧрд╛рддрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдзрдиреНрдпрд╡рд╛рдж! рдпрд╣ Google рдореБрдЦреНрдп рд▓реЙрдЧрд┐рди рдлрд╝реЙрд░реНрдо рдХреЗ рдмрд╣реБрдд рдХрд░реАрдм рджрд┐рдЦрддрд╛ рд╣реИ:
рджреЗрд░реА рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдл рдХрд░реЗрдВред рдореИрдВ рдХреЛрд╢рд┐рд╢ рдХрд░реВрдБрдЧрд╛ рдФрд░ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдкреБрдирд░реБрддреНрдкрд╛рджрди рдХрд░реВрдБрдЧрд╛ рдЬрдм рд╕рдордп рдЗрд╕ рд╕рдкреНрддрд╛рд╣ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред рдЗрд╕ рдмреАрдЪ рдореЗрдВ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдлрд┐рдХреНрд╕ рд╣реИ - рдЯреЗрдХреНрд╕реНрдЯрдлрд┐рд▓реНрдб рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдкрд░ рдСрдЯреЛрдлреЛрдХрд╕ рд╕реЗрдЯ рдХрд░рдиреЗ рд╕реЗ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИред
` <TextField
required
**autoFocus**
variant="outlined"
id="username"
label="mobile number"
defaultValue=""
margin="normal"
name="username"
type="tel"
onChange={this.handleChange}
error={!this.state.validMobile}
autoComplete="tel-national username"
/>
TextFields рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдкрд░ рдСрдЯреЛрдлреЛрдХрд╕ рд╕реЗрдЯ рдХрд░рдиреЗ рд╕реЗ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИред
рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред
рдСрдЯреЛ рднрд░реЗ рдкрд╛рда рдХреЗ рд▓рд┐рдП рдкреАрд▓реЗ рд░рдВрдЧ рдХреА рдкреГрд╖реНрдарднреВрдорд┐ рдкрд░ рднреА рдзреНрдпрд╛рди рджреЗрдВ, рдХреНрдпрд╛ рдЗрд╕реЗ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?
@garygrubb рдореИрдВрдиреЗ рдПрдХ рдереАрдо рдУрд╡рд░рд░рд╛рдЗрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдРрд╕рд╛ рдХрд┐рдпрд╛:
const theme = createMuiTheme({
overrides: {
MuiInputBase: {
input: {
'&:-webkit-autofill': {
transitionDelay: '9999s',
transitionProperty: 'background-color, color',
},
},
},
},
});
рдЖрджрд░реНрд╢ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХреБрдЫ рд╣реИред
рд╡рд┐рдХрд▓реНрдк рдЗрдирдкреБрдЯ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмреЙрдХреНрд╕-рд╢реИрдбреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ: https://stackoverflow.com/questions/2781549/removing-input-background-colour-for-chrome-autocomplete
@oliviertassinari рдпрд╣ рдЪрд╛рд▓ рд╣реЛ рд╕рдХрддреА рд╣реИ: https://stackoverflow.com/a/41530164/396889
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, FYI рдХрд░реЗрдВ: https://github.com/facebook/react/issues/1159
@MarkMurphy рдХрд┐рд╕реА рднреА рд╡рд┐рдЪрд╛рд░ рдореИрдВ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдХреИрд╕реЗ рдкреБрди: рдкреЗрд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?
@MarkMurphy рдХрд┐рд╕реА рднреА рд╡рд┐рдЪрд╛рд░ рдореИрдВ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдХреИрд╕реЗ рдкреБрди: рдкреЗрд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?
рдореЗрд░реЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдлрд╝реЙрд░реНрдо рдмрдирд╛рдпрд╛ рдФрд░ рдХреНрд░реЛрдо рдХреЛ рдореЗрд░реА рд╕рд╛рдЦ рдпрд╛рдж рд░рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреАред
MacOS рд╣рд╛рдИ рд╕рд┐рдПрд░рд╛ 10.13.6 рдкрд░ рдХреНрд░реЛрдо 72.0.3626.119 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
@ рд╕рд╛рдордЧреНрд░реА- ui / рдореБрдЦреНрдп рд╕рдВрд╕реНрдХрд░рдг "3.8.1"
@ рд╕рд╛рдордЧреНрд░реА-рдпреВрдЖрдИ / рд╢реИрд▓рд┐рдпреЛрдВ рд╕рдВрд╕реНрдХрд░рдг "3.0.0-рдЕрд▓реНрдлрд╛.6"
@MarkMurphy рдореИрдВ рдЗрд╕реЗ https://material-ui.com/getting-started/page-layout-examples/sign-in/ рдХреЗ рд╕рд╛рде рдкреБрди: рдкреЗрд╢ рдХрд░ рд╕рдХрддрд╛ рдерд╛:
рдпрд╣ рдЯреЗрдХреНрд╕реНрдЯ рдлреАрд▓реНрдб рд╕реНрдЯреИрдВрдбрд░реНрдб рд╡реИрд░рд┐рдПрдВрдЯ рдХреЗ рд╕рд╛рде рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рдо рджреЛ рдореБрджреНрджреЛрдВ рдХреЛ рдиреЛрдЯрд┐рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
рдЖрдЗрдП рдЕрдм рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рд╣рдо рдЗрд╕ рдкреГрд╖реНрда рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: https://deploy-preview-14499--material-ui.netlify.com/getting-started/page-layout-examples/sign-in-side/
рдпрд╣ рдЗрд╕рдХреА рдХреНрд░реЛрдо рдСрдЯреЛрдлрд┐рд▓ рд╕рдорд╕реНрдпрд╛ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИред рдЕрдЧрд░ рд╣рдореЗрдВ рдХреНрд░реЛрдо рдХреЗ рдСрдЯреЛрдлрд┐рд▓ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рдпрд╣ рдПрдХ рдЖрд╕рд╛рди рд╕рдорд╛рдзрд╛рди рд╣реЛрдЧрд╛ ... рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдХрд┐рд╕реА рднреА рд╕рдорд╛рдзрд╛рди рдХреА рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рд╣реИред рдХреЗрд╡рд▓ рд╕рдорд╛рдзрд╛рди рд╕рднреА textfields рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдд: рдкреВрд░реНрдг / рдСрдЯреЛрдлрд┐рд▓ рдХреЛ рдмрдВрдж рдХрд░рдирд╛ рдерд╛ред
@ ymoon715 рдХрдо рд╕реЗ рдХрдо рдПрдХ рдЕрдиреНрдп рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╕рдорд╛рдзрд╛рди рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдКрдкрд░ рдПрдХ рд▓рд┐рдВрдХ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛
рд╕рдорд╛рдзрд╛рди рджрд╕реНрддрд╛рд╡реЗрдЬрд╝:
рдУрд╡рд░рд░рд╛рдЗрдбрд┐рдВрдЧ рд╕реНрдЯрд╛рдЗрд▓: http://webagility.com/posts/the-ultimate-list-of-hacks-for-chromes- рд▓рд╛рдЧреВ-yellow-background-on-autocompleted-inputs
рдСрдЯреЛрдлрд┐рд▓ рд╢реИрд▓рд┐рдпреЛрдВ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдирд╛ (рдКрдкрд░ рджрд┐рдП рдЧрдП рджреВрд╕рд░реЗ рд▓рд┐рдВрдХ рд╕реЗ рд╕реНрдирд┐рдкреЗрдЯ):
input:-webkit-autofill,
.my-class:-webkit-autofill {
-webkit-transition-delay: 9999999s;
}
рдзрдиреНрдпрд╡рд╛рдж @cezarderevlean , рдореБрдЭреЗ рдкреАрд▓реЗ рд░рдВрдЧ рдХреА рдкреГрд╖реНрдарднреВрдорд┐ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдорд┐рд▓рд╛, рдЕрдм рдмрд╕ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдЧреНрд░реЗ рдЖрдЙрдЯ рд╣реЗрд▓реНрдкрд░ рдЯреЗрдХреНрд╕реНрдЯ рдХреЛ рдХреИрд╕реЗ рд╣рдЯрд╛рдпрд╛ рдЬрд╛рдПред
рдпрджрд┐ рдЖрдк рдКрдкрд░ рджрд┐рдП рдЧрдП рдкрд╣рд▓реЗ рд▓рд┐рдВрдХ рдореЗрдВ рдмрддрд╛рдП рдЕрдиреБрд╕рд╛рд░ рдСрдЯреЛрдлрд┐рд▓ рдХреЛ "рдбрд┐рд╕реЗрдмрд▓" рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдСрдЯреЛрдлрд┐рд▓ рдХреЗ рдмрд╛рдж, рдпрд╣ рдЖрдкрдХреЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдХреА рддрд░рд╣ рд╣реА рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ рдЬрдм рдкреЗрдЬ рдХрд┐рд╕реА рдХреЛрдб рдкрд░рд┐рд╡рд░реНрддрди рд╕реЗ рд░реАрдлреНрд░реЗрд╢ рд╣реЛ рдЬрд╛рдП
рд╡рд┐рдХрд╛рд╕ (рдЬрд╣рд╛рдБ рддрдХ рдореИрдВрдиреЗ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рд╣реИ)ред рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд▓реЛрдб / рд░рд┐рдлреНрд░реЗрд╢ рдареАрдХ рд░рд╣реЗрдЧрд╛, рдпрд╣ рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░ рдХреЛ рд╕рд┐рдХреЛрдбрд╝ рджреЗрдЧрд╛ред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдЧрд░ рдореИрдВрдиреЗ рдЬреЛ рдКрдкрд░ рдХрд╣рд╛ рд╣реИ рд╡рд╣ рдЕрд╕рддреНрдп рд╕рд╛рдмрд┐рдд рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЖрдк рдЬрд┐рд╕ рдкрд░ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╡рд╣ рд╣рдореЗрд╢рд╛ рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░ рдХреЛ рдЗрд╕ рдкреНрд░реЛрдк рдХреЗ рд╕рд╛рде TextField
рдкрд░ рд╕рд┐рдХреЛрдбрд╝ рдХрд░ рд░рдЦрддрд╛ рд╣реИ:
InputLabelProps={{
shrink: true,
}}
@cezarderevlean рдзрдиреНрдпрд╡рд╛рдж рддреБрдо рд╕рд╣реА рд╣реЛред рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд░рд┐рдлреНрд░реЗрд╢ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕реЗ рдХреИрд╕реЗ рдпрд╛рдж рдХрд┐рдпрд╛ рд▓реЗрдХрд┐рди @MarkMurphy рдХреЗ рдкрд╛рд╕ рдПрдХ рд╕рдорд╛рди рд╕рдорд╛рдзрд╛рди рддрд░реАрдХрд╛ рдерд╛ рдФрд░ рдпрд╣ рд╕рд╛рдордЧреНрд░реА рд╡рд┐рд╖рдп рдУрд╡рд░рд░рд╛рдЗрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рдХреНрд▓реАрдирд░ рд╣реИред рдзрдиреНрдпрд╡рд╛рдж рдорд╛рд░реНрдХред
рдпрджрд┐ рдЖрдк рдКрдкрд░ рджрд┐рдП рдЧрдП рдкрд╣рд▓реЗ рд▓рд┐рдВрдХ рдореЗрдВ рдмрддрд╛рдП рдЕрдиреБрд╕рд╛рд░ рдСрдЯреЛрдлрд┐рд▓ рдХреЛ "рдбрд┐рд╕реЗрдмрд▓" рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдСрдЯреЛрдлрд┐рд▓ рдХреЗ рдмрд╛рдж, рдпрд╣ рдЖрдкрдХреЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдХреА рддрд░рд╣ рд╣реА рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ рдЬрдм рдкреЗрдЬ рдХрд┐рд╕реА рдХреЛрдб рдкрд░рд┐рд╡рд░реНрддрди рд╕реЗ рд░реАрдлреНрд░реЗрд╢ рд╣реЛ рдЬрд╛рдП
рд╡рд┐рдХрд╛рд╕ (рдЬрд╣рд╛рдБ рддрдХ рдореИрдВрдиреЗ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рд╣реИ)ред рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд▓реЛрдб / рд░рд┐рдлреНрд░реЗрд╢ рдареАрдХ рд░рд╣реЗрдЧрд╛, рдпрд╣ рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░ рдХреЛ рд╕рд┐рдХреЛрдбрд╝ рджреЗрдЧрд╛редрдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдЧрд░ рдореИрдВрдиреЗ рдЬреЛ рдКрдкрд░ рдХрд╣рд╛ рд╣реИ рд╡рд╣ рдЕрд╕рддреНрдп рд╕рд╛рдмрд┐рдд рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЖрдк рдЬрд┐рд╕ рдкрд░ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╡рд╣ рд╣рдореЗрд╢рд╛ рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░ рдХреЛ рдЗрд╕ рдкреНрд░реЛрдк рдХреЗ рд╕рд╛рде
TextField
рдкрд░ рд╕рд┐рдХреЛрдбрд╝ рдХрд░ рд░рдЦрддрд╛ рд╣реИ:InputLabelProps={{ shrink: true, }}
рдзрдиреНрдпрд╡рд╛рдж, рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ред
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдлрд╝реАрд▓реНрдб рдкрд░ autoFocus
рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдлрд╝реАрд▓реНрдб рдкрд░ autoComplete='new-password'
рд╕реЗрдЯ рдХрд░рдирд╛ рднреА рдореЗрд░реЗ рд▓рд┐рдП рдЪрд╛рд▓ рд╣реИред
рдЕрджреНрдпрддрди: рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдпрд╣рд╛рдБ рдмрдВрджреВрдХ рдХреВрдж рдЧрдпрд╛ред рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рдХреНрдпреЛрдВ?
рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдЗрдирдкреБрдЯ рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдХреЗрд╡рд▓ рдорд╛рдиреЛрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп (рджреЗрдЦреЗрдВ https://github.com/mui-org/material-ui/issues/14427#issuecomment-4660549066, I) рдЗрд╕ рдПрд╕рдУ рд▓реЗрдЦ рдореЗрдВ рд╡рд┐рд╕реНрддреГрдд рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдЖрдпрд╛ рд╣реВрдВ: https://stackoverflow.com/questions/35049555/chrome-autofill-autocomplete-no-value-for-password/56157489#5615589ред рд▓рд┐рдВрдХ рдореЗрдВ рдЗрд╕ рд╕рдордЧреНрд░ рдореБрджреНрджреЗ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЗрддрд┐рд╣рд╛рд╕ рд╣реИ рдЬреЛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдХреНрд░реЛрдо рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред
componentDidMount() {
var evt = new MouseEvent("click", {
view: window,
clientX: 0
});
window.dispatchEvent(evt);
let iterations = 0;
const interval = setInterval(() => {
const value = this.inputs.email.value;
// plain js alternative:
// const value = document.getElementById("email").value;
if (!!value || iterations > 20) {
console.log(value);
return clearInterval(interval);
}
iterations++;
console.log("not found -> repeat");
}, 100);
}
рдЕрд╕рд▓ рдореЗрдВ, рдореИрдВ рдЗрдирдкреБрдЯ рдкрд░ рдорд╛рдЙрд╕ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддрд╛ рд╣реВрдВ рдЗрд╕рд▓рд┐рдП Chrome рдЗрдирдкреБрдЯ рдкрд░ рдорд╛рди рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред рдлрд┐рд░ рдмрд╛рдж рдореЗрдВ рдЬрдм рдореВрд▓реНрдп рддреИрдпрд╛рд░ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдореВрд▓реНрдп рдХреЛ рдкрдХрдбрд╝ рд▓реЗрддрд╛ рд╣реВрдВред рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╣реИрдХ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрд░реЛрдо рд╣рдореЗрдВ рдХреЛрдИ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рдЫреЛрдбрд╝рддрд╛ рд╣реИ ... (рдПрд╕рдУ рд▓реЗрдЦ рдореЗрдВ рдХреНрд░реЛрдо рдХреЗ рд░реБрдЦ рдХрд╛ рд╡рд┐рд╡рд░рдг рджреЗрдЦреЗрдВ)ред
TL; DR: рдпрд╣ рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдорд╕реНрдпрд╛ рд╣реИред рдСрдЯреЛрдлрд┐рд▓рд┐рдВрдЧ рдлреЙрд░реНрдо рдмрдирд╛рддреЗ рд╕рдордп рд╡реЗ рд▓рдЧрд╛рддрд╛рд░ рдЗрдирдкреБрдЯ рдИрд╡реЗрдВрдЯ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред
рдпрд╣ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реНрддрд░ рдкрд░ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИред рдпрджрд┐ рдореИрдВ рдкреГрд╖реНрда рдХреЗ рдЕрдВрджрд░ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд▓реЛрдб рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдЗрдирдкреБрдЯ рдШрдЯрдирд╛рдУрдВ рдХреЛ рднреЗрдЬ рджреЗрддрд╛ рд╣реВрдВред рдпрджрд┐ рдореИрдВ рдкреГрд╖реНрда рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдирд╛рд╡рдмрд╛рд░ рдореЗрдВ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдпрд╣ рдХреЗрд╡рд▓ рджреВрд╕рд░реЗ рджрд░реНрдЬ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИред рдЕрдЧрд░ рдореИрдВ рдкреГрд╖реНрда рдХреЗ рд▓рд┐рдВрдХ рдХреЛ рдХреЙрдкреА рдХрд░рдХреЗ рдкреГрд╖реНрда рдкрд░ рдЙрддрд░рддрд╛ рд╣реВрдВ рдФрд░ рдЗрд╕реЗ рдирд╛рд╡рдмрд╛рд░ рдореЗрдВ рджрд░реНрдЬ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╣рдо рд╕рднреА рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдареАрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдкреЛрд▓ рд╡реИрд▓реНрдпреВ рдЖрдЯреЛрдлрд┐рд▓реНрдб рд╣реЛрдиреЗ рдкрд░ рднреА рдЗрдирдкреБрдЯ рд╡реИрд▓реНрдпреВ рдЕрднреА рднреА рдЦрд╛рд▓реА рд╣реИред рдХреЗрд╡рд▓ рдХреНрд░реЛрдо рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдл-рд╕реБрдерд░реА рдЪрд╛рд▓ рд╣реИред рдЬрд╛рдВрдЪ рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдХреНрдпрд╛ рдХреЗрд╡рд▓ рдХреНрд░реЛрдо рдореЗрдВ рд╣реА рдпреЗ рдореБрджреНрджреЗ рд╣реИрдВред
@ eps1lon рдХреНрдпрд╛ рдЖрдкрдиреЗ рдХреНрд░реЛрдорд┐рдпрдо рдореЗрдВ рдмрдЧ рдЦреЛрд▓рд╛ рд╣реИ рдпрджрд┐ рдпрд╣ рдХреНрд░реЛрдорд┐рдпрдо рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ?
рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ: https://github.com/mui-org/material-ui/issues/718#issuecomment -529064043ред
рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ: InputLabelProps = {{рд╕рдВрдХреЛрдЪрди: рд╕рддреНрдп}}, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╣рдореЗрд╢рд╛ рд╕рд┐рдХреБрдбрд╝рд╛ рд░рд╣рддрд╛ рд╣реИ
рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЕрдВрддрд░ рд▓рдЧрддрд╛ рд╣реИ:
diff --git a/packages/material-ui/src/InputBase/InputBase.js b/packages/material-ui/src/InputBase/InputBase.js
index d258e5b71d..a7aebb1288 100644
--- a/packages/material-ui/src/InputBase/InputBase.js
+++ b/packages/material-ui/src/InputBase/InputBase.js
@@ -311,6 +311,10 @@ const InputBase = React.forwardRef(function InputBase(props, ref) {
}
};
+ // Check the input state on mount, in case it was filled by the user
+ // or auto filled by the browser before the hydration (for ssr).
+ React.useEffect(() => {
+ checkDirty(inputRef.current);
+ }, []);
+
const handleClick = event => {
if (inputRef.current && event.currentTarget === event.target) {
inputRef.current.focus();
рдХреНрдпрд╛ рдХреЛрдИ рднреА рдлрд┐рдХреНрд╕ рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реИ?
@oliviertassinari рд╕рд╛рдордЧреНрд░реА ui рдореЗрдВ рдПрдХ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рдШрдЯрдХ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдпрд╣ рдКрдкрд░ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд @ eps1lon рдХреЗ рд░реВрдк рдореЗрдВ рдХреНрд░реЛрдорд┐рдпрдо рдмрдЧ рд╣реИ, рддреЛ рдпрд╣ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдлрд┐рдХреНрд╕ рдХреЗрд╡рд▓ рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рд╕рдорд╕реНрдпрд╛ рдХреНрд░реЛрдорд┐рдпрдо рдХреЗ рднреАрддрд░ рддрдп рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рдмрд╛рдд рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХреНрд░реЛрдорд┐рдпрдо рдореЗрдВ рдПрдХ рдмрдЧ рд╣реИ рдпрд╛ рд╕рд┐рд░реНрдл рдПрдХ MUI рдмрдЧ рд╣реИ?
рдпрджрд┐ рдпрд╣ рдХреНрд░реЛрдорд┐рдпрдо рдмрдЧ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдпрд╣ рдЬрд╛рдВрдЪрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдХреНрд░реЛрдорд┐рдпрдо рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдмрдЧ рдЦреЛрд▓рд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдпрджрд┐ рдирд╣реАрдВ рдЦреБрд▓рд╛ рд╣реИ? рдХреБрдЫ рдЗрд╕ рддрд░рд╣: рдХреНрд░реЛрдорд┐рдпрдо рдЦреЛрдЬ рдкрд░рд┐рдгрд╛рдо
(Https://github.com/mui-org/material-ui/issues/14427#issuecomment-524535710)
рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ Chrome рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдФрд░ рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдПрдХ рдореБрджреНрджрд╛ рд╣реИред рдпрджрд┐ рдХреЛрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд┐рд╕реА рдЗрдирдкреБрдЯ рдореЗрдВ рд╕рд╛рдордЧреНрд░реА рд▓рд┐рдЦрддрд╛ рд╣реИ, рддреЛ рд░рд┐рдПрдХреНрдЯ рд╣рд╛рдЗрдбреНрд░реЗрдЯ рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрднреА рд╕реВрдЪрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: https://github.com/facebook/react/issues/12955
@oliviertassinari рд▓реЗрдХрд┐рди рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреНрд░рд┐рдПрдЯ-рд░рд┐рдПрдХреНрд╢рди-рдРрдк рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рд╕рд░реНрд╡рд░ рдореЗрдВ рдирд╣реАрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ?
рдпрд╣ рдореБрджреНрджрд╛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рднреА onInput рдпрд╛ onChange рд╕рдВрдЪрд╛рд▓рдХреЛрдВ рдХреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрджрд┐ рдХреНрд░реЛрдо рдСрдЯреЛрдлрд┐рд▓ рдХреЗ рдмрд╛рдж рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рддреЛ рдпреЗ рдИрд╡реЗрдВрдЯ рдЦреЛ рдЬрд╛рддреЗ рд╣реИрдВред рдЕрдзрд┐рдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЖрдк рдШрдЯрдирд╛рдУрдВ рдХреЛ рдвреАрд▓рд╛ рдХрд░рддреЗ рд╣реИрдВред рд░рд┐рдПрдХреНрдЯ рдиреЗ рдЙрди рдШрдЯрдирд╛рдУрдВ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛, рдЬреЛ рдмрд┐рдирд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рдкрдХрдбрд╝ рдореЗрдВ рдЖ рдЬрд╛рддреА рд╣реИрдВред рдпрд╣ рд╣рд╛рдЗрдбреНрд░реЗрдЯреЗрдб UI рдХреА рдорджрдж рдХрд░реЗрдЧрд╛ред
рджреВрд╕рд░рд╛ рдореБрджреНрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдХрднреА-рдХрднреА input.value
рд╕реЗрдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореВрд▓реНрдп рд╕реНрд╡рддрдГрдкреВрд░реНрдг рд╣реЛрддрд╛ рд╣реИред рдЗрдирдкреБрдЯ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ / рдзреБрдВрдзрд▓рд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╣реА, рдЬрд┐рд╕рдХреЗ рдЕрдирдкреЗрдХреНрд╖рд┐рдд рд╕рд╛рдЗрдб-рдЗрдлреЗрдХреНрдЯреНрд╕ рд╣реЛрддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╕рддреНрдпрд╛рдкрди)ред
рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╢реЛрдз рдХрд░рдирд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд▓рдЧрднрдЧ рдХреЛрдИ рд░рд┐рдкреЛрд░реНрдЯ рдПрдХ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдЙрджрд╛рд╣рд░рдг рдирд╣реАрдВ рд╣реИред рдЬрдм рддрдХ рд╣рдо рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рд╕реЗ рдкрд╣рдЪрд╛рди рдирд╣реАрдВ рд▓реЗрддреЗ рд╣реИрдВ, рддрдм рддрдХ рд╣рдореЗрдВ рдХреЛрдИ рдлрд┐рдХреНрд╕ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ @oliviertassinari https://github.com/mui-org/material-ui/issues/14427#issuecomment -5301818849 рд╕реЗ рддрдп рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХрдо рд╕реЗ рдХрдо рдХрд╡рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдШрдЯрдирд╛рдУрдВ рдХреЛ рдЧрд┐рд░рд╛ рджрд┐рдпрд╛ред
@ eps1lon рджрд┐рд▓рдЪрд╕реНрдкред рдореЗрд░рд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдЕрдВрддрд░ рдХреЗрд╡рд▓ рдЙрд╕ рдореБрджреНрджреЗ рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ https://material-ui.com/getting-started/page-layout-examples/sign-in/ (рджреЗрд╡ рдореЛрдб рдореЗрдВ, рдЕрдкрдиреЗ рд╕реНрдерд╛рдиреАрдп рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ) рдкреБрди: рдкреНрд░рд╕реНрддреБрдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдореБрдЭреЗ рдЗрд╕ рдмрд╛рдд рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдВрддрд┐рдо рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ (рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдШрдЯрдирд╛ рдХреЛ рд╕реБрдирдиреЗ рдХреЗ рд▓рд┐рдП) рдХрд┐ "рдЬрд▓рдпреЛрдЬрди рд╕реЗ рдкрд╣рд▓реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдШрдЯрдирд╛" рд╕рдорд╕реНрдпрд╛ рдХреА рдЬрдбрд╝ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ, рдХрдо рд╕реЗ рдХрдо рдЬрдм рддрдХ рд░рд┐рдПрдХреНрдЯ https://github.com/facebook/react/issues/12/55 рдореЗрдВ рдХреБрдЫ рджрд┐рд▓рдЪрд╕реНрдкреА рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ
@ Croraf рдЖрдк CRA рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдХреЛ рдХреИрд╕реЗ рдкреБрди: рдкреЗрд╢ рдХрд░рддреЗ рд╣реИрдВ?
рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ "рдШрдЯрдирд╛ рд╕реЗ рдкрд╣рд▓реЗ рдЬрд▓рдпреЛрдЬрди рд╢реБрд░реВ рд╣реЛ рдЧрдпрд╛" рд╕рдорд╕реНрдпрд╛ рд╣рдореЗрдВ https://github.com/mui-org/material-ui/issues/14132#issuecomment -453657016 рдореЗрдВ рднреА рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреА рд╣реИред
@oliviertassinari CRA рдпрд╣рд╛рдВ рдЕрдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИ, рд▓реЗрдХрд┐рди CRA рдХреЗ рд╕рд╛рде рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреЛрдбрдХрдВрдбрдмреЙрдХреНрд╕ рднреА CRA рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реЛ): https://codesandbox.io/s/textinput-bug-hsv9m
рдП) рдЗрд╕реЗ рдЗрд╕ рдХреЛрдбреИрдВрдбрдмреЙрдХреНрд╕ рдореЗрдВ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:
1) рдирдИ рд╡рд┐рдВрдбреЛ рдореЗрдВ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдХреЗ рдРрдк рдХрд╛ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдЦреЛрд▓реЗрдВред
2) рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓ рджрд░реНрдЬ рдХрд░реЗрдВ рдФрд░ рд╕рд╣реЗрдЬреЗрдВ (рдХреНрд░реЛрдо рд╕рдВрд╡рд╛рдж рдХреЗ рдмрд╛рдж рдЙрдиреНрд╣реЗрдВ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реИ)
3) рд╕рдорд╕реНрдпрд╛ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдВрдбреЛ рдХреЛ рд░рд┐рдлреНрд░реЗрд╢ рдХрд░реЗрдВ (рдЬреИрд╕рд╛ рдХрд┐ рдХреНрд░реЛрдо рдСрдЯреЛрдлрд┐рд▓ рд▓рд╛рдЧреВ рдХрд░реЗрдЧрд╛)ред рд╕рдорд╕реНрдпрд╛ рд▓рдЧрд╛рддрд╛рд░ рддрд╛рдЬрд╝рд╛ рдкрд░ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддреА рд╣реИ, рд▓реЗрдХрд┐рди F5 рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде (рддреЗрдЬрд╝ рдбрдмрд▓ рддрд╛рдЬрд╝рд╛) рдпрд╣ рд▓рдЧрднрдЧ рд▓рдЧрд╛рддрд╛рд░ рдкреБрди: рдкреЗрд╢ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдмреА) рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдореБрдЭреЗ рдХреБрдЫ рдРрд╕рд╛ рд╣реА рдорд┐рд▓рд╛
1) рдХреЛрдбреИрдВрдбрдмреЙрдХреНрд╕ рдРрдк рдкреНрд░реАрд╡реНрдпреВ рдореЗрдВ (рдЕрд▓рдЧ рдРрдк рд╡рд┐рдВрдбреЛ рдореЗрдВ рдирд╣реАрдВ)ред
2) рдлрд╝реЙрд░реНрдо рднрд░реЗрдВ рдФрд░ рд╕рдмрдорд┐рдЯ рдХрд░реЗрдВ (рддрд╛рдХрд┐ Chrome рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо / рдкрд╛рд╕рд╡рд░реНрдб рд╕рдВрдпреЛрдЬрди рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ)
3) рд╕рд┐рд░реНрдл рдРрдк рдкреНрд░реАрд╡реНрдпреВ рдХреЛ рд░реАрд▓реЛрдб рдХрд░реЗрдВред рдлреЙрд░реНрдо рддреБрд░рдВрдд рд╕реНрд╡рдд: рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реЛрдЧрд╛ред (рд╕рд╛рдордЧреНрд░реА-рдпреВрдЖрдИ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдореЗрдВ рдЖрдк рдЦреЗрддреЛрдВ рдХреЗ рд╕реНрд╡рддрдГрднрд░рдг рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ)
4) рдпреВрдЬрд░ рдиреЗрдо рдЯреЗрдХреНрд╕реНрдЯрдлреАрд▓реНрдб рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред Chrome рдЖрдкрдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЪреБрдирдиреЗ рдХреА рдкреЗрд╢рдХрд╢ рдХрд░реЗрдЧрд╛ред
5) рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╣реЙрд╡рд░ рдХрд░реЗрдВ рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдлрд╝реАрд▓реНрдб рдкрд░ рд╣реЛ рд░рд╣реА рд╕рдорд╕реНрдпрд╛ рджреЗрдЦреЗрдВред
@ eps1lon рдХрд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рд╣реИрдВрдбрд▓рд░ рдХреЗ рд╕реЗрдЯ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХреНрд░реЛрдо рдЖрдЧ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдЕрдВрдЬрд╛рдо рджреЗ рд╕рдХрддрд╛ рд╣реИред
рд▓реЗрдХрд┐рди рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ DOM рдореЗрдВ рджрд░реНрдЬ рдХрд┐рдП рдЧрдП рдЗрдирдкреБрдЯ рдХреЛ рдмрдирд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХреНрд░реЛрдо рдХреИрд╕реЗ рдСрдЯреЛрдлрд┐рд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдЪрд▓рд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд░рд┐рдПрдХреНрдЯ рдЙрдиреНрд╣реЗрдВ DOM рдореЗрдВ рдХреИрд╕реЗ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИ?
рдпрд╣ рдореБрдЭреЗ рдЧрд▓рдд рд▓рдЧрддрд╛ рд╣реИ, рдФрд░ рд╢рд╛рдпрдж SSR рдХреЗ рд╕рд╛рде рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ)ред рд▓реЗрдХрд┐рди CRA рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рд╕рд░реНрд╡рд░ SSR рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
@ eps1lon рдХрд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рд╣реИрдВрдбрд▓рд░ рдХреЗ рд╕реЗрдЯ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХреНрд░реЛрдо рдЖрдЧ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдЕрдВрдЬрд╛рдо рджреЗ рд╕рдХрддрд╛ рд╣реИред
рдпрд╣ рдХреЗрд╡рд▓ рд╕реНрдереИрддрд┐рдХ html рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреНрд╡рд╛рд░рд╛ рд╣рд╛рдЗрдбреНрд░реЗрдЯреЗрдб рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдХреЗрд╡рд▓ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ рдирд┐рд░реНрдорд┐рдд рд╣реЛрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЗрд╕ рд╕рдордп рдкреНрд░рдЬрдирди рдирд╣реАрдВ рдерд╛ред рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдореБрджреНрджреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдореИрдВ Chrome v76.0.3809.132, macOS v10.14.6 рдкрд░ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреБрди: рдкреЗрд╢ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ ред
рдореИрдВ рдХреНрд░реЛрдо v76.0.3809.87, рд╡рд┐рдВрдбреЛрдЬ 10 рдкрд░ рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдкреБрди: рдкреЗрд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред
рдореИрдВ рдЙрд╕реА рд╕реЗрдЯрд┐рдВрдЧ, Chrome v76.0.3809.132, macOS v10.14.6 рдкрд░ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред
рдореЗрд░рд╛ рд╕рдорд╛рдзрд╛рди:
import { isChrome, osName} from "react-device-detect";
.....
.....
const isChromeOSX = osName === 'Mac OS' && isChrome
const [shrink, setShrink] = useState(isChromeOSX ? true : undefined)
useEffect(() => {
if(isChromeOSX) {
const listen = () => {
setShrink(undefined)
window.removeEventListener('click',listen)
}
window.addEventListener('click', listen);
return () => {
window.removeEventListener('click',listen)
};
}
}, [])
return <TextField
.....
variant="outlined"
InputLabelProps={{ shrink }}
/>
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рднрд┐рдиреНрди рд╕рдорд╕реНрдпрд╛ рдХреЛ рдШрдЯрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдореИрдВ рдкреБрди: рдкреЗрд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рдХреНрдпрд╛ рдХреЛрдИ рдЗрд╕рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реИ?
diff --git a/packages/material-ui/src/FormControl/FormControl.js b/packages/material-ui/src/FormControl/FormControl.js
index 0ede7ca404..c7cb22aeb9 100644
--- a/packages/material-ui/src/FormControl/FormControl.js
+++ b/packages/material-ui/src/FormControl/FormControl.js
@@ -145,6 +145,14 @@ const FormControl = React.forwardRef(function FormControl(props, ref) {
};
}
+ const onFilled = React.useCallback(() => {
+ setFilled(true);
+ }, []);
+
+ const onEmpty = React.useCallback(() => {
+ setFilled(false);
+ }, []);
+
const childContext = {
adornedStart,
disabled,
@@ -156,16 +164,8 @@ const FormControl = React.forwardRef(function FormControl(props, ref) {
onBlur: () => {
setFocused(false);
},
- onEmpty: () => {
- if (filled) {
- setFilled(false);
- }
- },
- onFilled: () => {
- if (!filled) {
- setFilled(true);
- }
- },
+ onEmpty,
+ onFilled,
onFocus: () => {
setFocused(true);
},
diff --git a/packages/material-ui/src/InputBase/InputBase.js b/packages/material-ui/src/InputBase/InputBase.js
index d258e5b71d..9cb6c94f43 100644
--- a/packages/material-ui/src/InputBase/InputBase.js
+++ b/packages/material-ui/src/InputBase/InputBase.js
@@ -116,6 +116,13 @@ export const styles = theme => {
'&$disabled': {
opacity: 1, // Reset iOS opacity
},
+ '&:-webkit-autofill': {
+ animationDuration: '5000s',
+ animationName: '$auto-fill',
+ },
+ },
+ '<strong i="6">@keyframes</strong> auto-fill': {
+ from: {},
},
/* Styles applied to the `input` element if `margin="dense"`. */
inputMarginDense: {
@@ -239,17 +246,20 @@ const InputBase = React.forwardRef(function InputBase(props, ref) {
}
}, [muiFormControl, disabled, focused, onBlur]);
+ const onFilled = muiFormControl && muiFormControl.onFilled;
+ const onEmpty = muiFormControl && muiFormControl.onEmpty;
+
const checkDirty = React.useCallback(
obj => {
if (isFilled(obj)) {
- if (muiFormControl && muiFormControl.onFilled) {
- muiFormControl.onFilled();
+ if (onFilled) {
+ onFilled();
}
- } else if (muiFormControl && muiFormControl.onEmpty) {
- muiFormControl.onEmpty();
+ } else if (onEmpty) {
+ onEmpty();
}
},
- [muiFormControl],
+ [onFilled, onEmpty],
);
useEnhancedEffect(() => {
@@ -311,6 +321,12 @@ const InputBase = React.forwardRef(function InputBase(props, ref) {
}
};
+ // Check the input state on mount, in case it was filled by the user
+ // or auto filled by the browser before the hydration (for SSR).
+ React.useEffect(() => {
+ checkDirty(inputRef.current);
+ }, []); // eslint-disable-line react-hooks/exhaustive-deps
+
const handleClick = event => {
if (inputRef.current && event.currentTarget === event.target) {
inputRef.current.focus();
@@ -354,6 +370,10 @@ const InputBase = React.forwardRef(function InputBase(props, ref) {
};
}
+ const handleAutoFill = () => {
+ // Provide a fake value as Chrome might not let you access it for security reasons.
+ checkDirty({ value: 'x' });
+ };
+
return (
<div
className={clsx(
@@ -399,6 +419,7 @@ const InputBase = React.forwardRef(function InputBase(props, ref) {
defaultValue={defaultValue}
disabled={fcs.disabled}
id={id}
+ onAnimationStart={handleAutoFill}
name={name}
onBlur={handleBlur}
onChange={handleChange}
рдПрдХ рднрд╛рдЧ https://github.com/tocco/tocco-client/commit/cb3b9b59994380f17c6650ffe4b63f96948072b6 рд╕реЗ рдкреНрд░реЗрд░рд┐рдд рд╣реИ
рдореИрдВрдиреЗ рдЗрд╕ рдлрд┐рдХреНрд╕ рдХреЛ рд╕рд╛рдордЧреНрд░реА-рдпреВрдЖрдИ рд╕реИрдВрдбрдмреЙрдХреНрд╕ (рдбреЙрдХреНрд╕ рдкреЗрдЬ) рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдФрд░ рдЬрдм рдореИрдВ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред
рдпрд╣ рдореБрджреНрджрд╛ рдерд╛:
рдЗрд╕ рдлрд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рдореИрдВ рди рддреЛ https://github.com/mui-org/material-ui/issues/14427#issuecomment -530503051 рдХреЗ рднрд╛рдЧ B рдореЗрдВ рдмрддрд╛рдП рдЧрдП рд╕рдорд╛рди рдореБрджреНрджреЗ рдХреЛ рдкреБрди: рдкреНрд░рд╕реНрддреБрдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛
рдпрд╣рд╛рдБ рджреЗрдЦрд╛ рдЧрдпрд╛:
@oliviertassinari @ eps1lon рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд╡реНрдпрд╡рд╕рд╛рдп рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ v4.4.3 рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдФрд░ рдореБрдЭреЗ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рджрд┐рдЦрд╛рдИ рджреАред рддреЛ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреИрдЪ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╢рд╛рдпрдж рд╕рдмрд╕реЗ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рдирд╣реАрдВ) рдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ рдФрд░ рдореИрдВрдиреЗ рд╣реИрдХ рдХреЛ рд╣рдореЗрд╢рд╛ рд╣рдЯрд╛рдП рдЧрдП рд▓реЗрдмрд▓ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ ( InputLabelProps={{ shrink: true }}
рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╣реИрдХ рдирд╣реАрдВ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдЗрдирдкреБрдЯ рднрд▓реЗ рд╣реА рдЙрдареЗ рдереЗ рдЦреЗрдд рдЦрд╛рд▓реА рдереЗ)ред
@oliviertassinari @ eps1lon
рдореЗрд░реЗ рдкрд╛рд╕ рдЕрдм рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рд╣реИред рдЬрдм рдСрдЯреЛрдлрд┐рд▓ рдХреЗ рд╕рд╛рде рдЦреЗрд▓ рд░рд╣рд╛ рд╣реЛред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ, рдлрд┐рд░ рдкрд╛рд╕рд╡рд░реНрдб рд╣рдЯрд╛рдПрдВ, рдлрд┐рд░ рдкреБрди: рдЪрдпрди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ (рдпрд╛ рдРрд╕рд╛ рд╣реА рдХреБрдЫ) рд▓реЗрдмрд▓ рдЙрднрд░реЗ рд╣реБрдП рд░рд╣реЗрдВ, рднрд▓реЗ рд╣реА рдлрд╝реАрд▓реНрдб рд░рд┐рдХреНрдд рд╣реЛрдВ: -
->
рдХреНрд░реЛрдо: 77
рдЙрдмрдВрдЯреВ: 18.04
@oliviertassinari @ eps1lon @croraf рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдореЗрдВ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рднреА рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рдЕрдВрдХ рдЕрдм рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИред рдЖрдкрдХреА рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
@garygrubb рдпрд╣ рджреЗрдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрдк рдЙрдкрд░реНрдпреБрдХреНрдд рдкреЛрд╕реНрдЯ рдореЗрдВ рдмрддрд╛рдИ рдЧрдИ рд╕реВрдХреНрд╖реНрдо рддреНрд░реБрдЯрд┐ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВред
@coraf рд╣рд╛рдВ рдореИрдВ рдбреЗрд╕реНрдХрдЯреЙрдк рдХреНрд░реЛрдо рд╕рдВрд╕реНрдХрд░рдг 76.0.3809.132 (рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдмрд┐рд▓реНрдб) (64-рдмрд┐рдЯ) рдкрд░ рдПрдХ рд╣реА рдореБрджреНрджреЗ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред рдореЛрдмрд╛рдЗрд▓ рд╕рдВрд╕реНрдХрд░рдг рдФрд░ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдареАрдХ рд▓рдЧ рд░рд╣реЗ рд╣реИрдВред
рдпрджрд┐ рдЖрдк рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдЦреЛрд▓рддреЗ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдЯреИрдЧ рдХрд░реЗрдВ рддрд╛рдХрд┐ рдореИрдВ рд╕рд╛рде рдЪрд▓ рд╕рдХреВрдВред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорджрдж рдХрд░реЗрдЧрд╛?
diff --git a/packages/material-ui/src/InputBase/InputBase.js b/packages/material-ui/src/InputBase/InputBase.js
index 439e8afa7..f0ab8bb66 100644
--- a/packages/material-ui/src/InputBase/InputBase.js
+++ b/packages/material-ui/src/InputBase/InputBase.js
@@ -373,6 +373,12 @@ const InputBase = React.forwardRef(function InputBase(props, ref) {
}
const handleAutoFill = () => {
+ // The change event is correcty triggered when the input is focused.
+ // There is no need to detect autofill.
+ if (fcs.focused) {
+ return;
+ }
+
// Provide a fake value as Chrome might not let you access it for security reasons.
checkDirty({ value: 'x' });
};
@oliviertassinari рдареАрдХ рд╣реИ, рдореБрдЭреЗ рдореБрдИ рдбреЙрдХреНрд╕ рдкреГрд╖реНрда рдкрд░ рд╢реЗрд╖ рдЕрдВрдХ рдХрд╛ рд▓рдЧрд╛рддрд╛рд░ рдкреБрдирд░реБрддреНрдкрд╛рджрди рдорд┐рд▓рд╛ред
рдзреНрдпрд╛рди рджреЗрдВ: рдпрд╣ рд╢реЗрд╖ рдореБрджреНрджрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЫреЛрдЯреА рд╕реА рдмрд╛рдд рд╣реИ, рдФрд░ рд╢рд╛рдпрдж рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореВрд▓ рдореБрджреНрджрд╛ рдХреНрдпрд╛ рдерд╛ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ, рдЙрдЪреНрдЪ рдкреБрдЬрд╛рд░реАред
рд░реАрдлрд╝реНрд░реЗрд╢ рдХрд░реЗрдВ http: // localhost : 3000 / рдШрдЯрдХ / рдкрд╛рда-рдлрд╝реАрд▓реНрдб # рдЙрд▓реНрд▓рд┐рдЦрд┐рдд
рдореБрдЭреЗ рдХреБрдЫ рдРрд╕рд╛ рдорд┐рд▓рддрд╛ рд╣реИ:
рдИрдореЗрд▓ рдлрд╝реАрд▓реНрдб рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╣рдЯрд╛рдПрдВ рд▓реЗрдХрд┐рди рдкрд╛рд╕рд╡рд░реНрдб рдЕрднреА рднреА рд╕реНрд╡рдд: рдкреВрд░реНрдг рд╣реИ
localhost:3000
)рдЖрдкрдХреЛ рдпрд╣ рд╕реНрдерд┐рддрд┐ рдорд┐рд▓реЗрдЧреА:
@oliviertassinari рдЖрдкрдХрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рдлрд┐рдХреНрд╕ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд рд╢реЗрд╖ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдЧрддрд╛ рд╣реИред
рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рдПрдХ рдФрд░ рд╕реНрд╡рд╛рдж рдорд┐рд▓рд╛ рд╣реИ: рдбреА
рдкреНрд░рдЬрдирди рдЪрд░рдг рдКрдкрд░ рдХреЗ рд╕рдорд╛рди рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЪрд░рдг 3 рдХреЗ рдмрдЬрд╛рдп рднреА рдкрд╛рд╕рд╡рд░реНрдб рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕рд╛рдлрд╝ рдХрд░реЗрдВ:
рдпрд╣ рдЖрдкрдХреЛ рдЕрдВрдд рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рд┐рдгрд╛рдореА рдореБрджреНрджрд╛ рджреЗрдЧрд╛
рдпрд╣ рдЖрдкрдХреЛ рдЕрдВрдд рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рд┐рдгрд╛рдореА рдореБрджреНрджрд╛ рджреЗрдЧрд╛
@ рдХреНрд░реЙрд╕реНрдлрд╝ рдУрд╣ рдмреЙрдп, рдореИрдВрдиреЗ рдЗрд╕реЗ рдЖрддреЗ рд╣реБрдП рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИ! рд╣рд╛рдБ, рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред
diff --git a/packages/material-ui/src/InputBase/InputBase.js b/packages/material-ui/src/InputBase/InputBase.js
index 763ab105c..9dce66f9d 100644
--- a/packages/material-ui/src/InputBase/InputBase.js
+++ b/packages/material-ui/src/InputBase/InputBase.js
@@ -86,6 +86,7 @@ export const styles = theme => {
// Make the flex item shrink with Firefox
minWidth: 0,
width: '100%', // Fix IE 11 width issue
+ animationName: '$auto-fill-cancel',
'&::-webkit-input-placeholder': placeholder,
'&::-moz-placeholder': placeholder, // Firefox 19+
'&:-ms-input-placeholder': placeholder, // IE 11
@@ -123,6 +124,9 @@ export const styles = theme => {
'<strong i="9">@keyframes</strong> auto-fill': {
from: {},
},
+ '<strong i="10">@keyframes</strong> auto-fill-cancel': {
+ from: {},
+ },
/* Styles applied to the `input` element if `margin="dense"`. */
inputMarginDense: {
paddingTop: 4 - 1,
@@ -380,9 +384,11 @@ const InputBase = React.forwardRef(function InputBase(props, ref) {
};
}
- const handleAutoFill = () => {
+ const handleAutoFill = event => {
// Provide a fake value as Chrome might not let you access it for security reasons.
- checkDirty({ value: 'x' });
+ checkDirty(
+ event.animationName.indexOf('auto-fill-cancel') !== -1 ? inputRef.current : { value: 'x' },
+ );
};
return (
рд╕реЗ:
4.4.2
4.4.3
рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдкреИрдЪ
@oliviertassinari , @croraf - рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ рдпрд╣ рдЙрдореНрдореАрдж рдХреЗ
рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдХрд┐рд╕реА рдЕрдиреНрдп рдмрдЧ рдлрд┐рдХреНрд╕ рдореЗрдВ рдЯреИрдЧ рдХрд░реЗрдВ рдЬреЛ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдореБрдЭреЗ рдкреЙрдбрдХреНрд╢рди рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореБрдЭреЗ рдорджрдж рдХрд░рдХреЗ рдЦреБрд╢реА рд╣реЛрдЧреАред
рд╕реБрдирдХрд░ рдЦреБрд╢реА рд╣реБрдИред
рдбрд╛рд░реНрдХ рдереАрдо рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ?
@MAkerboom рд╣рдо рд░рдВрдЧ рдХреЛ рдЧрд╣рд░рд╛ рдиреАрд▓рд╛ рд╣реЛрдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХреНрдпрд╛ рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдкреНрд░рдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?
@oliviertassinari рдЬрдм рддрдХ рд░реВрдкрд░реЗрдЦрд╛ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣реА рд╣реИ рдФрд░ рдпрд╣ рдЕрднреА рднреА рдореЗрд░реЗ рд╕рд╛рде рдкрд╛рда рдХреЗ рд╕рд╛рде рдкрд░реНрдпрд╛рдкреНрдд рд╡рд┐рдкрд░реАрдд рд╣реИ, рдареАрдХ рд╣реИ
@MAkerboom рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдореИрдВ рдЖ рд╕рдХрддрд╛ рд╣реВрдВ:
diff --git a/packages/material-ui/src/FilledInput/FilledInput.js b/packages/material-ui/src/FilledInput/FilledInput.js
index 71d0bcc94..4b681cba1 100644
--- a/packages/material-ui/src/FilledInput/FilledInput.js
+++ b/packages/material-ui/src/FilledInput/FilledInput.js
@@ -106,6 +106,12 @@ export const styles = theme => {
/* Styles applied to the `input` element. */
input: {
padding: '27px 12px 10px',
+ '&:-webkit-autofill': {
+ WebkitBoxShadow: theme.palette.type === 'dark' ? '0 0 0 100px #266798 inset' : null,
+ WebkitTextFillColor: theme.palette.type === 'dark' ? '#fff' : null,
+ borderTopLeftRadius: 'inherit',
+ borderTopRightRadius: 'inherit',
+ },
},
/* Styles applied to the `input` element if `margin="dense"`. */
inputMarginDense: {
diff --git a/packages/material-ui/src/OutlinedInput/OutlinedInput.js b/packages/material-ui/src/OutlinedInput/OutlinedInput.js
index f60c4e5d5..376e37ba8 100644
--- a/packages/material-ui/src/OutlinedInput/OutlinedInput.js
+++ b/packages/material-ui/src/OutlinedInput/OutlinedInput.js
@@ -65,6 +65,11 @@ export const styles = theme => {
/* Styles applied to the `input` element. */
input: {
padding: '18.5px 14px',
+ '&:-webkit-autofill': {
+ WebkitBoxShadow: theme.palette.type === 'dark' ? '0 0 0 100px #266798 inset' : null,
+ WebkitTextFillColor: theme.palette.type === 'dark' ? '#fff' : null,
+ borderRadius: theme.shape.borderRadius,
+ },
},
/* Styles applied to the `input` element if `margin="dense"`. */
inputMarginDense: {
рдХрдпрд╛ рдпреЗ рддреБрдорд╣рд╛рд░реЗ рд▓рд┐рдпреЗ рдареАрдХ рд╣реИ? рдХреНрдпрд╛ рдЖрдк рдкреБрд▓ рдЕрдиреБрд░реЛрдз рд╕рдмрдорд┐рдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? :)
рдХрд╛рдлреА рдмреЗрд╣рддрд░! рдзрдиреНрдпрд╡рд╛рджред рдкреАрдЖрд░ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗ
<AutoComplete/>
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдореИрдВрдиреЗ рдЗрд╕ рдмрдЧ рдХреЛ рджреЗрдЦрд╛ред рдЬрдм рдпрд╣ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рддреЛ рдкрд╛рда рдХреНрд╖реЗрддреНрд░ рдЗрд╕рдХреЗ рд▓реЗрдмрд▓ рдХреЛ "рд╕рд┐рдХреЛрдбрд╝" рдирд╣реАрдВ рд╕рдХрддрд╛ рд╣реИред рдореИрдВрдиреЗ рдЗрд╕реЗ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдФрд░ рдХреНрд░реЛрдо рдореЗрдВ рджреЗрдЦрд╛ (рдЕрдиреНрдп рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛)ред V4.5.0 рд╕реЗ v4.5.2 рддрдХ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рд╕реЗ рд╕рдорд╕реНрдпрд╛ рдареАрдХ рд╣реЛ рдЧрдИред рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рд╕реЗ рдЬреБрдбрд╝реЗ рдкреАрдЖрд░ рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!
рдПрдлрдбрдмреНрд▓реНрдпреВрдЖрдИрдбрдмреНрд▓реНрдпреВ рдпрд╣рд╛рдВ рдПрдХ рдереАрдо рдУрд╡рд░рд░рд╛рдЗрдб рд╣реИ рдЬреЛ рдХреНрд░реЛрдо рдХреЛ рдСрдЯреЛрдлрд┐рд▓реНрдб рдЗрдирдкреБрдЯ рдкрд░ рдХрд╕реНрдЯрдо рд░рдВрдЧ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрддреА рд╣реИ:
theme = {
overrides: {
MuiInputBase: {
root: {
fontFamily: '"Lato", serif',
"& input": {
"&:-webkit-autofill": {
transition:
"background-color 50000s ease-in-out 0s, color 50000s ease-in-out 0s",
},
"&:-webkit-autofill:focus": {
transition:
"background-color 50000s ease-in-out 0s, color 50000s ease-in-out 0s",
},
"&:-webkit-autofill:hover": {
transition:
"background-color 50000s ease-in-out 0s, color 50000s ease-in-out 0s",
},
},
},
},
}
}
@armellarcier рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ рдХрд╕реНрдЯрдо рд░рдВрдЧреЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд╕рд╛рде рд╕рд╛рд╡рдзрд╛рди рд░рд╣реВрдВрдЧрд╛, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред рдпрд╣ рдПрдХ рд╕реБрд░рдХреНрд╖рд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рднреА рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдЖрдк рд╕рд╣реА рдбреЛрдореЗрди рдирд╛рдо рдкрд░ рд╣реИрдВ, рдлрд┐рд╢рд┐рдВрдЧ рдирд╣реАрдВ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИ (рдЕрдиреНрдпрдерд╛ рдСрдЯреЛрдлрд╝рд┐рд▓ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ)
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
@garygrubb рдореИрдВрдиреЗ рдПрдХ рдереАрдо рдУрд╡рд░рд░рд╛рдЗрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдРрд╕рд╛ рдХрд┐рдпрд╛:
рдЖрджрд░реНрд╢ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХреБрдЫ рд╣реИред
рд╡рд┐рдХрд▓реНрдк рдЗрдирдкреБрдЯ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмреЙрдХреНрд╕-рд╢реИрдбреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ: https://stackoverflow.com/questions/2781549/removing-input-background-colour-for-chrome-autocomplete