【发布时间】:2020-04-25 22:01:08
【问题描述】:
我是 ReactJS Hooks 的新手。我搜索了一个明确的受控表单验证示例,但没有找到。所以我决定写一个简单的问题,任何人都可以轻松理解。
假设我有两个输入字段,输入 number 和输入 text
const [values, set_values] = useState({first_input:'',second_input:''});
const handle_change = (e) => {
let name = e.target.name
let value = e.target.value;
values[name] = value;
set_values(values);
}
const test_validation () => {
// I used to do it this way
if(document.getElementsByName('first_input')[0].value==''){
alert("first input is required")
}
}
return(
<div>
<input onChange={handle_change} name='first_input' type='number' />
<input onChange={handle_change} name='second_input' type='text' />
<input type='submit' onClick={test_validation} />
<div/>
)
使用纯 JS 来检查输入的值和设置条件是错误的还是更喜欢使用 React 验证表单?
我尝试在输入元素标签上设置required 属性,所以它不能被跳过但没有工作。
我需要alert() 警告消息以获取所需文件或highlight 或focus。
【问题讨论】:
-
@tksilicon 他似乎有一个非常可靠的变量命名风格约定,他一直在坚持。这可能违反您的约定,但您的方式不是方式。
document.getElementById是 JS,所以它应该可以正常工作,尽管我同意这部分不是一个很好的做法。
标签: javascript reactjs forms validation react-hooks