【发布时间】:2017-05-26 13:35:07
【问题描述】:
我有一个输入字段,使用这个代码做出反应:
const InputField = props => (
<div className="input-row">
<input
{...props.input}
type={props.type}
className="form-control input-box__input"
placeholder={props.placeholder}
value={props.value}
defaultValue={props.defaultValue}
defaultChecked={props.defaultChecked}
disabled={props.disabled}
onChange={props.onChange}
checked={props.checked}
/>
{props.meta.touched && props.meta.error &&
<span className="error">
{props.intl.formatMessage({ id: props.meta.error }) }
</span>}
</div>
);
我想添加一个validation 或更好的preventDefault 属性,这样它就不会让用户输入小数点后三位以上的浮点数。
如果用户输入这样的数字:1.234,它应该阻止用户输入更多的数字,尽管在他的键盘上打字。关于如何实现这一点的任何想法?
【问题讨论】:
-
到目前为止您尝试过什么?请不要指望我们为您编写代码。提示:我会将纯函数组件转换为类组件并使用
onKeyDown处理程序方法来验证当前输入的值。 -
我从来没有说过要为我编写代码。我的项目必须在容器中使用无状态组件。
-
试试
input type="number"你可以通过step attribute控制输入大小。这将在浏览器级别上工作,但仅适用于支持此 HTML 元素的那些浏览器。但是为什么要阻止用户使用特定号码呢?无论如何,浮点数将被转换为 32 位 -
这是必需的验证。我不能让用户输入一个大于三个小数点的数字
标签: javascript validation reactjs precision decimal-point