我正在尝试在 onChange 事件中调用两个函数。
这是我的代码:
onChange(e){
const re = /^[0-9\b]+$/;
if (e.target.value == '' || re.test(e.target.value)) {
this.setState({value: e.target.value})
}
}
<input
type="text"
size="3"
defaultValue={ViewHelpers.toFixed(val1, 2)}
onChange={(e) => {
this.handleValueChanges(this.props.valCols[i]);
this.onChange
}}
/>
我无法调用这两个函数
答案 0 :(得分:0)
我认为你需要调用第二个函数(执行它):
<input
type="text"
size="3"
defaultValue={ViewHelpers.toFixed(val1, 2)}
onChange={(e) => {
this.handleValueChanges(this.props.valCols[i]);
this.onChange(e);
}}
/>
答案 1 :(得分:0)
您可以在this.handleValueChanges
处理程序中调用this.onChange
。在您输入的onChange
道具中,您需要绑定this.onChange
并传入this.props.valCols[i]
值:
onChange(value, e){
this.handleValueChanges(value);
const re = /^[0-9\b]+$/;
if (e.target.value == '' || re.test(e.target.value)) {
this.setState({value: e.target.value})
}
}
<input
type="text"
size="3"
defaultValue={ViewHelpers.toFixed(val1, 2)}
onChange={this.onChange.bind(this, this.props.valCols[i])}
/>
修改强>
如果您不想允许使用文字和数字,则应使用number
输入而不是text
输入:
<input
type="number"
size="3"
defaultValue={ViewHelpers.toFixed(val1, 2)}
onChange={this.onChange.bind(this, this.props.valCols[i])}
/>
答案 2 :(得分:0)
第二个功能没有括号。你也错过了分号。
<input
type="text"
size="3"
defaultValue={ViewHelpers.toFixed(val1, 2)}
onChange={(e) => {
this.handleValueChanges(this.props.valCols[i]);
this.onChange();
}}/>