我有一个简短形式的电话号码TextField。然后我想屏蔽这个表格字段,如(0)xxx xxx xx xx。
我尝试将react-input-mask插件与Material-UI一起使用。但是,如果我想更改输入值,则不会更新我的主TextField。
<TextField
ref="phone"
name="phone"
type="text"
value={this.state.phone}
onChange={this.onChange}
>
<InputMask value={this.state.phone} onChange={this.onChange} mask="(0)999 999 99 99" maskChar=" " />
</TextField>
实际上,我无法找到任何使用Material-UI屏蔽的文档。我试图找出如何使用其他插件。
答案 0 :(得分:8)
对于当前版本的Material-UI和react-input-mask,以下答案有效:
<InputMask
mask="(1)999 999 9999"
value={self.state.inputValue}
onChange={this.getTextFieldValue}
className={this.props.classes.textField}
>
{() => <TextField
id={attribute}
label={attribute}
name={attribute}
className={this.props.classes.textField}
margin="normal"
type="text"
/>}
</InputMask>
答案 1 :(得分:5)
这应该可以解决问题:
<TextField
ref="phone"
name="phone"
type="text"
value={this.state.phone}
onChange={this.onChange}
>
<InputMask mask="(0)999 999 99 99" maskChar=" " />
</TextField>
答案 2 :(得分:0)
问题:
codesandbox.io/s/q8v1259oq6请检查这个我的标签测试floatLabelText是隐藏的我如何解决。 - Thilina Sampath
解决方法:
您可以使用&#34; floatingLabelFixed&#34;来控制标签位置支柱。在你的handleChange看看状态输入值。
...使用值创建时:
constructor(props) {
super(props);
let value = props && props.value ? props.value : '';
let floatingLabelFixed = !!value;
this.state = {
value,
floatingLabelFixed,
};
this.handleChange = this.handleChange.bind(this);
}
...编辑时(onChange):
handleChange(event) {
let value = event && event.target && event.target.value ? event.target.value : '';
let floatingLabelFixed = !!value;
this.setState({
value,
floatingLabelFixed
});
}
...你的意见:
<TextField
onChange={this.handleChange}
value={this.state.value}
floatingLabelFixed={this.state.floatingLabelFixed}/>
答案 3 :(得分:0)
这适用于当前版本的react-input-mask
和material-ui
:
<InputMask
mask="(0)999 999 99 99"
value={this.state.phone}
onChange={this.onChange}
>
{() => <TextField />}
</InputMask>
答案 4 :(得分:0)
<InputMask
mask="99999" // Format you need implemented
value={cellNumber}
onChange={this.inputHandler}
placeholder="Cell Number"
name="cellNumber"
required disableUnderline
style={style.inputfeild}
maskChar= {'_'}> // To display when there is no character typed
{(inputProps) =>
<Input {...inputProps}/>}
</InputMask>
只需将所有道具提供给 InputMask,然后将它们作为输入道具传递给回调方法,在该方法中显示文本字段或输入字段,它应该可以正常工作。