jquery必填字段验证器问题

时间:2015-09-16 18:36:55

标签: javascript jquery forms validation filter

我有一个包含多个输入字段和一个选择字段的表单。我有多个字段所需的属性。我创建了一个验证代码段,它应检查所有必填字段,并在字段为空时显示一条消息。

然而问题是它只在第一个输入字段为空时才有效。我会暗示一个提示。

功能代码:

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();
}
}

编辑:

搜索了一些并发现.filter循环遍历字段。调整了我的代码:

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。编辑:我想我得到了重点。解决方案来自this回答。

0 个答案:

没有答案