繁体   English   中英

(必需)在我的 react.js 表单中不起作用

[英](required) in my react.js form doesn't work

我是编程新手,在我的 react.js 应用程序中,我试图通过表单和我的表单从用户那里获取信息,我将required放在 form.control 中以确保输入不为空并且在发送之前是必需的,但它不再起作用,即使表单为空也会发送

这是我的代码,有什么办法可以在表单中进行一些验证吗?

export default function AddCourse() {
  
    const handleChange = (e) => {
        e.preventDefault();
        const { name, value } = e.target;
        setCourseData({ ...courseData, [name]: value });
        console.log(courseData);
    };

    const handleFileChange = (e) => {
        const { name, files } = e.target;
        setCourseData({ ...courseData, [name]: files[0] });

    };

    const submitForm = () => {

        let form_data = new FormData();

        form_data.append('user', userId);
        form_data.append('category', courseData.category);
        form_data.append('name', courseData.name);
        form_data.append('brief', courseData.brief);
        form_data.append('image', courseData.image);

        try {
            axios.post(baseUrl + '/course/', form_data,

            ).then((response) => {
                // window.location.href='/AddCoursePage'; //to reload the page when the course added


                if (response.status == 201) {

                    const Swal = require('sweetalert2');

                    Swal.fire(
                        'Good job!',
                        'Course has been added successfully',
                        'success'
                    )}

            });
        } catch (error) {
            console.log(error);
        }
    };


    return (
        <Fragment>
            <div className='Pro-bg'>
                <div className='container mt-4'>
                    <Row>
                        <section className='col-md-9'>
                            <div className='card'>
                                <h5 className='card-header' >Add Course </h5>
                                <div className='card-body'>
                                    <>
                                        <Form  >
                                            <Form.Select className="mb-3" aria-label="Default select example" onChange={handleChange} name='category' required >
                                                {category.map((category, index) => {
                                                    return <option key={index} value={category.id} > {category.title} </option>
                                                })}

                                            </Form.Select>

                                            <FloatingLabel controlId="floatingTextarea" label="Course title" className="mb-3">
                                                <Form.Control name='name' type="Text" placeholder="Leave a course decription here" onChange={handleChange} required />
                                            </FloatingLabel>

                                            <FloatingLabel controlId="floatingTextarea2" label="Leave a course decription here">
                                                <Form.Control
                                                    name='brief'
                                                    required
                                                    type="Text"
                                                    placeholder="Leave a comment here"
                                                    onChange={handleChange}
                                                    style={{ height: '100px' }}

                                                />


                                            </FloatingLabel>
                                            <Form.Group controlId="formFileMultiple" className="mb-3 mt-3">

                                                <Form.Control name='image' type="file" multiple onChange={handleFileChange} required />
                                            </Form.Group>


                                        </Form>

                                        <Button blocksize="lg" variant="warning" type="submit" active onClick={submitForm} > Submit </Button>


                                    </>
                                </div>
                            </div>

                        </section>
                    </Row>
                </div>
            </div>
        </Fragment>
    )
}

请任何帮助?

尝试添加 boolean:

required={true}

Boolean,如果为真,则表示输入必须有值才能提交表单。 您可以分配一个字符串以在错误 object 中返回错误消息。

import Swal from 'sweetalert2'

export default function AddCourse() {
  
    const handleChange = (e) => {
        e.preventDefault();
        const { name, value } = e.target;
        setCourseData({ ...courseData, [name]: value });
        console.log(courseData);
    }; // ...rest of your code 

并从您的代码中删除它 const Swal = require('sweetalert2');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM