aks*_*aks 5 javascript forms validation reactjs
我正在使用requiredhtml5 的属性来确保该字段不为空。我有一个提交按钮,按下此按钮后会触发验证。我只想保留此验证而不提交表单。
render() {
<form role="form">
<input type="number" value={this.state.value} required/>
<button type="submit" onClick={this.onFinish.bind(this)}>Submit</button>
</form>
}
onFinish(event) {
// event.target.checkValidity(); // something like this?
event.preventDefault();
}
Run Code Online (Sandbox Code Playgroud)
当我使用event.preventDefault()表单时,未提交但验证也未运行。我怎样才能做到这一点?我不想为必需的东西编写自定义验证,因为它们已经可用,并且我想使用现有的验证。
抱歉,我参加聚会迟到了。您可以使用e.target.checkValidity()which 检查元素是否有任何约束以及是否满足这些约束。如果元素未达到其约束,浏览器会在该元素上触发可取消的无效事件,然后返回 false。与提交时一起使用。我是这样做的:
handleSubmit(e){
e.preventDefault();
if(e.target.checkValidity()){ // use can also use e.target.reportValidity
// submitForm
}
}
render(){
return(
<form onSubmit={e => this.handleSubmit(e)}>
<input type="number" value={this.state.value} required/>
<button type="submit">Submit</button
</form>
)
}
Run Code Online (Sandbox Code Playgroud)
刚刚添加onSubmit到表单并通过了事件。
通过反复试验,我找到了一个似乎工作正常的解决方案。如果您知道更好或不同的方式,请告诉我。这就是我所做的:
render() {
<form role="form" onSubmit={this.onFinish.bind(this)>
<input type="number" value={this.state.value} required/>
<button type="submit">Submit</button>
</form>
}
onFinish(event) {
// All Validations triggered and this function is only called
// when everything is valid, so I do my custom post here.
}
Run Code Online (Sandbox Code Playgroud)
只是将提交按钮的方法表单 onClick 移至表单的 onSubmit 。
| 归档时间: |
|
| 查看次数: |
11470 次 |
| 最近记录: |