Javascript "null" 空复选框上的验证消息
Javascript "null" validation message on empty checkboxes
我在表单验证中使用这个库 https://github.com/asimism/native-validations,它工作正常,但是当我尝试提交空的复选框组时,我在复选框组验证中收到一条错误消息:"null"
这是演示 link:您必须单击 "submit" 而不是单击任何字段才能看到 "null" 消息 https://www.cssscript.com/demo/custom-html5-form-validator-native-validations/
https://codesandbox.io/s/8xr6vx5nnj?fontsize=14
显然这个函数有错误
function checkBoxGroupValidate(event) {
//get all checked checkboxes for a group and if its null then mark it invalid or valid
var totalChecked = event.target.parentNode.querySelector("input[name$='[]']:checked");
if (totalChecked === null) {
var errorMessage = '';
if(event.target.dataset.requireError){
errorMessage = event.target.dataset.requireError;
}else if(event.target.parentNode.dataset.requireError){
errorMessage = event.target.parentNode.dataset.requireError;
}else {
errorMessage = OptionGroupMessage;
}
event.target.parentNode.classList.remove(SuccessClass);
event.target.parentNode.classList.add(ErrorClass);
if (event.target.parentNode.querySelector(HelpBlockSelector) === null) {
event.target.parentNode.insertAdjacentHTML("afterbegin", MessageTag.replace("{0}", errorMessage));
}
} else {
event.target.parentNode.classList.remove(ErrorClass);
event.target.parentNode.classList.add(SuccessClass);
var spanError = event.target.parentNode.querySelector(HelpBlockSelector);
if (spanError !== null) {
event.target.parentNode.removeChild(spanError)
}
}
}
querySelector 返回 null,因为在这种情况下,checkbox 在子元素上搜索错误消息,但它们没有 data-require-error 属性,第一次得到错误。
var errorMessage = groupParent.querySelector("input[name$='[]']").getAttribute('data-require-error');
而是直接使用父级
var errorMessage = groupParent.getAttribute("data-require-error");
我在表单验证中使用这个库 https://github.com/asimism/native-validations,它工作正常,但是当我尝试提交空的复选框组时,我在复选框组验证中收到一条错误消息:"null"
这是演示 link:您必须单击 "submit" 而不是单击任何字段才能看到 "null" 消息 https://www.cssscript.com/demo/custom-html5-form-validator-native-validations/
https://codesandbox.io/s/8xr6vx5nnj?fontsize=14
显然这个函数有错误
function checkBoxGroupValidate(event) {
//get all checked checkboxes for a group and if its null then mark it invalid or valid
var totalChecked = event.target.parentNode.querySelector("input[name$='[]']:checked");
if (totalChecked === null) {
var errorMessage = '';
if(event.target.dataset.requireError){
errorMessage = event.target.dataset.requireError;
}else if(event.target.parentNode.dataset.requireError){
errorMessage = event.target.parentNode.dataset.requireError;
}else {
errorMessage = OptionGroupMessage;
}
event.target.parentNode.classList.remove(SuccessClass);
event.target.parentNode.classList.add(ErrorClass);
if (event.target.parentNode.querySelector(HelpBlockSelector) === null) {
event.target.parentNode.insertAdjacentHTML("afterbegin", MessageTag.replace("{0}", errorMessage));
}
} else {
event.target.parentNode.classList.remove(ErrorClass);
event.target.parentNode.classList.add(SuccessClass);
var spanError = event.target.parentNode.querySelector(HelpBlockSelector);
if (spanError !== null) {
event.target.parentNode.removeChild(spanError)
}
}
}
querySelector 返回 null,因为在这种情况下,checkbox 在子元素上搜索错误消息,但它们没有 data-require-error 属性,第一次得到错误。
var errorMessage = groupParent.querySelector("input[name$='[]']").getAttribute('data-require-error');
而是直接使用父级
var errorMessage = groupParent.getAttribute("data-require-error");