如何修改MUI DesktopTimePicker点击文本框时的掩码文本?
修改MUI DesktopTimePicker的输入掩码
要解决点击文本框后显示hh:mm掩码不符合德语应用需求的问题,你可以通过以下方式调整:
直接自定义掩码(推荐)
给DesktopTimePicker组件添加mask属性,设置为你需要的德语风格掩码文本。比如保持和占位符一致的--:--,或者使用德语用户习惯的格式:
<LocalizationProvider dateAdapter={AdapterDateFns} adapterLocale={de}> <DesktopTimePicker mask="--:--" // 替换默认的hh:mm掩码 value={date} minutesStep={1} disabled={props.disabled} onChange={(newValue) => { if (newValue) { try { const timeString = format(newValue, 'HH:mm'); props.onChange(timeString); } catch (e) { props.onChange(undefined); } } else { props.onChange(undefined); } }} slots={{ actionBar: undefined, }} slotProps={{ textField: { placeholder: '-- : --', variant: 'standard', sx: { '& .MuiInputBase-input': { fontSize: 13, height: 40, paddingLeft: '15px', paddingRight: '15px', paddingTop: '0px', paddingBottom: '0px', }, '& .MuiButtonBase-root': { margin: '0px', padding: '0px', }, '& .MuiSvgIcon-root': { fontSize: '14px', }, '& .MuiInputAdornment-root': { marginLeft: '0px', paddingLeft: '10px', paddingRight: '10px', }, }, }, }} /> </LocalizationProvider>
如果需要更贴合德语语境的占位符(比如用St代表小时,Mi代表分钟),可以将mask设为"St:Mi",同时保持format属性确保输入格式正确:
<DesktopTimePicker mask="St:Mi" format="HH:mm" // 维持实际时间解析格式 // 其他属性不变 />
内容的提问来源于stack exchange,提问作者Oliver Watkins
相关产品推荐
相关产品推荐

