Javascript jquery必填字段验证程序问题
我有一个包含多个输入字段和一个选择字段的表单。对于多个字段,我有一个required属性。我已经创建了一个验证代码段,它应该检查所有必需的字段,并在字段为空时显示一条消息 然而,问题是,它只在第一个输入字段为空时工作。我希望得到一个暗示 函数的代码:Javascript jquery必填字段验证程序问题,javascript,jquery,forms,validation,filter,Javascript,Jquery,Forms,Validation,Filter,我有一个包含多个输入字段和一个选择字段的表单。对于多个字段,我有一个required属性。我已经创建了一个验证代码段,它应该检查所有必需的字段,并在字段为空时显示一条消息 然而,问题是,它只在第一个输入字段为空时工作。我希望得到一个暗示 函数的代码: function lisa_a() { //validator var req = $(":input[required]").val(); var reqfield = $(":input[required]"); if (re
function lisa_a() {
//validator
var req = $(":input[required]").val();
var reqfield = $(":input[required]");
if (req == ""){
$(".error").remove();
var reqtxt = "<span class='error'>Nõutud</span>";
reqfield.each(function(){
$(this).after(reqtxt);
});
$("div#status").html("Please fill...");
//validator
}else{
var data = $("form#lisa_a_vorm").serialize();
$.ajax({
url : "/var_dump.php", //for testing
method: "POST",
data : data,
success:function(data) {
$("div#status").html(data);
}
});
$("form#lisa_a_vorm :input").each(function(){
$(this).val('');
});
$(".error").remove();
}
}
编辑:
搜索了更多内容并发现。筛选在字段中循环。调整了我的代码:
function lisa_a() {
//validator
var emptyfields = $(":input[required]").filter(function(){
return $.trim($(this).val()).length === 0;
}).length > 0;
$(".error").remove();
if (emptyfields){
$(":input[required]").after("<span class='error'>Nõutud</span>");
$("div#status").html("Palun täida kõik nõutud väljad!");
}else{
var data = $("form#lisa_a_vorm").serialize();
$.ajax({
url : "/wp-content/themes/origin/TCDB/php/var_dump.php",
method: "POST",
data : data,
success:function(data) {
$("div#status").html(data);
}
});
$("form#lisa_a_vorm :input").each(function(){
$(this).val('');
});
$(".error").remove();
}
}
我不太明白,它并不完美。过滤器基础。如果我说filter函数返回值为0的经过修剪的必需输入字段的数目,这意味着它们是空的,那么我是否正确。如果这些字段的数量大于0,则返回true,否则返回false。编辑:我想我刚刚说到点子上了。答案来自答案。您的req变量只获取第一个输入的值,您也应该在那里执行。每个$:input[required]可能返回一个元素列表,而不仅仅是一个。循环通过它们。否则.val将只考虑第一次出现。您的req变量只考虑第一次输入的值,您也应该这样做。每个$:input[required]可能返回一个元素列表,而不仅仅是一个。循环通过它们。否则,.val将只考虑第一次出现。