微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

reactjs中的空白验证

如何解决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 举报,一经查实,本站将立刻删除。