给这个Modal中的Form加上校验吧。1.name:要求5-10位中英文或者数字(必填)
时间: 2024-09-14 22:11:26 浏览: 36
为了给这个模态框中的表单添加验证,我们可以利用前端的JavaScript库如React、Vue或Angular的内置功能,或者使用简单的HTML5自带的表单验证。这里是一个基本的例子,我们将展示如何在React中实现:
```jsx
// 假设这是您的表单组件
class ModalForm extends React.Component {
state = {
name: "",
isValid: false,
errors: {},
};
handleChange = (e) => {
const { name, value } = e.target;
this.setState({ [name]: value });
if (this.validateName(name, value)) {
this.setState({ isValid: true, errors: {} });
} else {
this.setState({ isValid: false, errors: { name: "请输入5-10位的中英文字符或数字" } });
}
}
validateName = (field, value) => {
const regex = /^[a-zA-Z0-9\u4e00-\u9fa5]{5,10}$/; // 匹配5到10位的中英文字符或数字
return regex.test(value);
}
handleSubmit = (event) => {
if (this.state.isValid) {
// 提交表单数据...
} else {
event.preventDefault();
}
}
render() {
return (
<form onSubmit={this.handleSubmit}>
<input
type="text"
name="name"
value={this.state.name}
onChange={this.handleChange}
required
pattern={/[a-zA-Z0-9\u4e00-\u9fa5]{5,10}/} // HTML5的正则表达式限制
placeholder="请输入5-10位的中英文字符或数字"
className={this.state.errors.name ? "invalid-input" : ""}
/>
{this.state.errors.name && <div className="error-message">错误信息</div>}
<button type="submit" disabled={!this.state.isValid}>提交</button>
</form>
);
}
}
// 使用时
<ModalForm />
```
在这个例子中,我们对`name`输入字段进行了实时验证,并在表单提交前检查是否有效。如果输入不符合要求,会显示错误提示并阻止表单提交。
阅读全文