【问题标题】:validating array using jQuery Validate使用 jQuery Validate 验证数组
【发布时间】:2017-05-20 07:13:10
【问题描述】:

我正在尝试使用 jQuery Validate 插件来验证数组。该数组有一个数字键,并且键号不是连续的。这意味着,它可能是

cause[0] or cause[2] or cause[7]

HTML代码

<form id="myform" action="submit.php">
  <select name="cause[0]" id="cause" class="cause">
    <option value="">Cause to Support</option>
    <option value="993">Medical</option>
    <option value="355">Children</option>
  </select>
  <select name="cause[2]" id="cause" class="cause">
    <option value="">Cause to Support</option>
    <option value="993">Medical</option>
    <option value="355">Children</option>
  </select>
  <input type="submit" name="submit" value="submit" />
</form>

演示 -- https://jsfiddle.net/squidraj/afgmqf9g/3/

它没有验证并提交表单到 submit.php 文件。在 firebug 错误控制台中也没有错误。

非常感谢任何帮助。

【问题讨论】:

标签: javascript jquery arrays validation


【解决方案1】:

试试这个Working Fiddle

<form id="myform" action="submit.php">
  <select name="cause[0]" id="cause" class="cause">
    <option value="">Cause to Support</option>
    <option value="993">Medical</option>
    <option value="355">Children</option>
  </select>
  <select name="cause[1]" id="cause1" class="cause">
    <option value="">Cause to Support</option>
    <option value="993">Medical</option>
    <option value="355">Children</option>
  </select>
  <input type="submit" name="submit" value="submit" id="btnSubmit" />
</form>

JQuery 代码:

$("#myform").validate();
  $(".cause").each(function () {
      $(this).rules("add", {
          required: true,
          messages: {
            required: "Custom Message for required"
          }
      });
  });

  $("#btnSubmit").click(function(e){    
    var isValid= $("#myform").valid();  
    if(isValid==false){
    e.preventDefault();
    }
    else{
        alert("Validate Successful.");
    }
  });

【讨论】:

  • 太棒了。我想知道是否可以添加自定义错误消息。
  • 优秀。非常感谢。
  • 有一个问题。由于这是对类名进行验证,因此错误消息添加在最后一个类名之后。在第一个选择框之后有几个输入元素,然后是第二个选择框。因此,如果我将第一个选择框留空并进行验证,则错误消息会出现在最后一个选择框之后。
  • 它可以很好地验证类名,但您需要像小提琴一样为每个元素添加唯一的名称。
  • 啊,id 应该是唯一的。对此感到抱歉。再次感谢。
【解决方案2】:

试试这个:

$("#myform").validate();
$(".cause").each(function (item) {
    $(this).rules("add", {
        required: true
    });
});

希望对你有帮助

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-01
相关资源
最近更新 更多