如何解决reactjs中的空白验证
我希望用户在单击“提交”按钮时避免添加空格。我在手柄更改中显示警报消息,因此,如果用户添加空格,它将显示。
但是我想在handlesubmit中显示警报消息。
下面是我的代码:
handleChange(event) {
let reWhiteSpace = new RegExp(/\s/);
var errors = {}
if (event.target.id === 'userID') {
this.setState({ userID: event.target.value })
errors.userID = reWhiteSpace.test(event.target.value)
if (errors.userID) {
this.setState({
alertMessage: "Spacing Not Allowed",showAlert: true,alertcolor: "warning"
})
}
}
this.setState({
errors: errors
})
}
handleSubmit(event) {
event.preventDefault();
console.log('form submission data',this.state);
var data = this.state;
if (this.state.userID !== '' ) {
const requestOptions = {
method: 'POST',headers: new Headers({
'Content-Type': 'application/json','Access-Control-Allow-Origin': '*'
}),body: JSON.stringify(data)
};
console.log(requestOptions)
fetch(API_URL,requestOptions)
.then(res => res.json())
.then((data) => {
console.log(data)
if (data.status) {
window.location = '/user-list'
if (data.message !== "") {
this.setState({
alertMessage: data.message,alertcolor: "success"
})
}
}
else if (data.message !== "") {
console.log('else',data.message)
this.setState({
alertMessage: data.message,alertcolor: "warning"
})
}
})
.catch(console.log)
}
else {
this.setState({
alertMessage: "Please enter all required fields",alertcolor: "warning"
})
}
}
我想检查句柄提交中的空白验证 有什么建议吗?
解决方法
由于您将errors
储存在状态中,因此您也可以在handleSubmit
中对其进行检查:
handleSubmit(event) {
event.preventDefault();
if (this.state.errors && this.state.errors.userID) {
this.setState({
alertMessage: "Please enter all required fields",showAlert: true,alertcolor: "warning"
})
return;
}
console.log('form submission data',this.state);
var data = this.state;
if (this.state.userID !== '' ) {
const requestOptions = {
method: 'POST',headers: new Headers({
'Content-Type': 'application/json','Access-Control-Allow-Origin': '*'
}),body: JSON.stringify(data)
};
console.log(requestOptions)
fetch(API_URL,requestOptions)
.then(res => res.json())
.then((data) => {
console.log(data)
if (data.status) {
window.location = '/user-list'
if (data.message !== "") {
this.setState({
alertMessage: data.message,alertcolor: "success"
})
}
}
else if (data.message !== "") {
console.log('else',data.message)
this.setState({
alertMessage: data.message,alertcolor: "warning"
})
}
})
.catch(console.log)
}
else {
this.setState({
alertMessage: "Please enter all required fields",alertcolor: "warning"
})
}
}
如果只想在字符串的开头/结尾检查空格,则可以使用trim()
方法而不是正则表达式:
function checkWhiteSpace(text) {
const _text = text.trim();
return text === _text;
}
您还可以避免所有这些空白验证,而可以通过编程方式将其删除,然后再使用string.trim()
方法发送请求。您可以read more here
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。