Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
React Javascript,表单/输入验证不起作用_Javascript_Reactjs_If Statement - Fatal编程技术网

React Javascript,表单/输入验证不起作用

React Javascript,表单/输入验证不起作用,javascript,reactjs,if-statement,Javascript,Reactjs,If Statement,我有几个输入和复选框,它们都需要包含一个值才能启用submit按钮。另外,他们为名称输入的值必须不存在,所以我使用includes在数组中检查它,我还尝试使用regex检查它,但这也不起作用。对于正则表达式,它根本不起作用。对于includes方法,它可以工作,但我的输入设置方式是由onChange事件处理的。当更改时,它们更新状态变量并调用一个函数,检查它们是否为空、是否已存在或是否在我为数字输入设置的特定范围内。如果我想输入PHP,输入第一个字母p,它会运行includes方法来检查“p”是

我有几个输入和复选框,它们都需要包含一个值才能启用submit按钮。另外,他们为名称输入的值必须不存在,所以我使用includes在数组中检查它,我还尝试使用regex检查它,但这也不起作用。对于正则表达式,它根本不起作用。对于includes方法,它可以工作,但我的输入设置方式是由onChange事件处理的。当更改时,它们更新状态变量并调用一个函数,检查它们是否为空、是否已存在或是否在我为数字输入设置的特定范围内。如果我想输入PHP,输入第一个字母p,它会运行includes方法来检查“p”是否存在,它会找到一个p,并说是的,我找到了一个“p”,这是真的,但这不是我想要的,我想检查数组中是否存在整个单词

这是我编的正则表达式,似乎不起作用

let regex:RegExp = new RegExp(state_course_name, 'i');
        for(let i in technologies){
            console.log(technologies[i].name.match(regex));
               if(!!technologies[i].name.match(regex)){
                    return;
               }
        }
这是我的函数,每次出现不太好的更改时都会检查输入

const checkFormInput = ():boolean => {
        state_form_Validation = true;
        let mybool:boolean;
        if(state_tech_name !== "" && state_tech_description !== "" && state_tech_courseArray.length > 0 && state_tech_difficulty > 0 && state_tech_difficulty < 6){
            for(let i in technologies){
                mybool = technologies[i].name.includes(state_tech_name);
                //console.log(state_course_name);
                if(technologies[i].name.includes(state_course_name)){
                    state_form_Validation = false; 
                }
                //console.log(mybool);
            }
        } else {
            state_form_Validation = true;
        }
        setState_form_validation(state_form_Validation)
        return state_form_Validation;
    };
const checkFormInput=():boolean=>{
状态\形式\验证=真;
设mybool:boolean;
如果(州科技名称!==“”&州科技描述!==“”&州科技课程array.length>0和州科技难度>0和州科技难度<6){
对于(让我加入技术){
mybool=technologies[i].name.includes(state\u tech\u name);
//console.log(状态\课程\名称);
if(technologies[i].name.includes(state_course_name)){
状态\形式\验证=假;
}
//console.log(mybool);
}
}否则{
状态\形式\验证=真;
}
设置状态表单验证(状态表单验证)
返回状态\表单\验证;
};
下面是输入和onchange处理程序的示例

<input name="editTechs" type="submit" disabled={!state_form_Validation} onClick={() => {submitAdd();history.push("/");}} 
                        value="Add"/>

const add_tech_name = (e:any):void => {
        setState_tech_name(e.target.value);
        checkFormInput();
    };
{submitad();history.push(“/”;}}
value=“添加”/>
const add_tech_name=(e:any):void=>{
设置状态技术名称(如目标值);
checkFormInput();
};
任何帮助,使这项工作正常将是伟大的,提前感谢