Javascript 如何对表单进行验证?

Javascript 如何对表单进行验证?,javascript,validation,Javascript,Validation,我为表单创建验证。 如果第二个字段已填写,而第一个字段为空,则会激活提交按钮 我的密码- (函数(){ "严格使用",; 函数初始化(形式){ 常量输入=form.querySelectorAll('.form__输入'); const inputName=form.querySelector('.form_uuinput--name'); const submit=form.querySelector('.form_usubmit'); 函数生成器错误(文本){ let error=doc

我为表单创建验证。 如果第二个字段已填写,而第一个字段为空,则会激活提交按钮

我的密码-

(函数(){
"严格使用",;
函数初始化(形式){
常量输入=form.querySelectorAll('.form__输入');
const inputName=form.querySelector('.form_uuinput--name');
const submit=form.querySelector('.form_usubmit');
函数生成器错误(文本){
let error=document.createElement('div');
error.classList.add('form__错误');
error.textContent=text;
返回误差;
}
函数removeErrors(){
const errors=form.querySelectorAll('.form__error');
for(设i=0;i0){
submit.setAttribute('disabled',true);
}
错误[i]。删除();
}
}
函数checkFieldsEmpty(){
for(设i=0;i40){
const error=generateErrors('3到40个字符');
输入[i].parentElement.insertBefore(错误,输入[i].nextSibling);
submit.setAttribute('disabled',true);
}否则{
submit.removeAttribute(“已禁用”);
}
}
}
函数验证(事件){
event.preventDefault();
删除错误();
checkFieldsEmpty();
}
表单。addEventListener(“输入”,验证);
表格.附录列表(“提交”,验证);
}
const forms=document.queryselectoral(“.form”);
forms.forEach(init);
})();
*{
框大小:边框框;
}
.表格{
填充:20px;
边框:1px实心#ccc;
}
.表格输入{
显示:块;
宽度:100%;
高度:40px;
填充:5px15px;
}
.表格输入+.表格输入{
边缘顶部:10px;
}
.提交表格{
显示:块;
边缘顶部:10px;
宽度:100%;
填充:10px 15px;
}
.表格错误{
颜色:#f00;
利润率:5px20px;
}

提交
提交

您需要稍微调整您的
checkFieldsEmpty
功能,以便在检查所有字段后,仅当所有测试都通过时,它才会删除disabled属性,类似于:

        function checkFieldsEmpty() {
            let disabled = false;
            for (let i = 0; i < inputs.length; i++) {
                if (!inputs[i].value) {
                    const error = generateErrors('This is a required field');
                    inputs[i].parentElement.insertBefore(error, inputs[i].nextSibling);
                    disabled = true;
                } else if (inputs[i].value.length < 3 || inputs[i].value.length > 40) {
                    const error = generateErrors('3 to 40 characters');
                    inputs[i].parentElement.insertBefore(error, inputs[i].nextSibling);
                    disabled = true;
                }
            }
            if(!disabled) {
                submit.removeAttribute('disabled');
            };
        }
函数checkFieldsEmpty(){
设禁用=假;
for(设i=0;i40){
const error=generateErrors('3到40个字符');
输入[i].parentElement.insertBefore(错误,输入[i].nextSibling);
禁用=真;
}
}
如果(!已禁用){
submit.removeAttribute(“已禁用”);
};
}