这些是我的 html 表单的 javascript 函数,分别用于验证“input”元素和“select”元素中的空值。 empty_select_check 函数不起作用,我不确定为什么,但 empty_value 检查适用于各个字段。但是,它在 empty_value_all() 函数中不起作用。请注意,当用户单击提交时会调用 empty_value_all()。 我收到以下错误:
类型错误:无法读取 empty_value_check 的未定义属性长度。知道为什么它适用于单个字段而不适用于我尝试提交时吗?让我知道您是否需要我的 html 代码,但基本上它只是带有 onkeyup="" 的输入元素,我在其中调用了 js 函数。
function submitform(){
empty_value_all()
$('#Start').click()
}
}
function empty_value_check(ele) {
let value = ele.value;
console.log(value)
if (value === '' || value.length === 0) {
if ($(ele).closest('div').find('small').length != 0)
$(ele).closest('div').find('small').removeClass('hide').removeClass('d-none');
else
$(ele).closest('div').nextAll('small').removeClass('hide').removeClass('d-none');
$(ele).addClass('is-invalid');
}
else {
$(ele).nextAll('small').addClass('hide');
$(ele).removeClass('is-invalid');
}
}
function empty_select_check(ele) {
if (ele.value === "Select Folder" || ele.value === undefined) {
$(ele).addClass('invalid-feedback');
return false
} else {
$(ele).removeClass('is-invalid');
}
}
$(function() {
$('#field_5,#field_6,#field_7').on('change', empty_select_check(this))
})
function empty_value_all() {
$('#field_1,#field_2,#field_3,#field_4').each(empty_value_check(this));
$('#field_5,#field_6,#field_7').each(empty_select_check(this));
return false;
}
答案 0 :(得分:0)
$(selector).each(looping_function)
需要一个函数作为输入,但在有问题的代码中,它是被传递的函数的结果。更新 empty_value_all
如下并尝试,
function empty_value_all() {
$('#field_1,#field_2,#field_3,#field_4').each(function () {
empty_value_check(this);
});
$('#field_5,#field_6,#field_7').each(function () {
empty_select_check(this);
});
//...
}