如何使用 jquery 验证验证列表框

How to validate list box with jquery validate

本文关键字:验证 列表 jquery 何使用      更新时间:2023-09-26

我正在使用jquery validation,它适用于普通字段。我需要一种方法来确保在满足验证之前一个列表框中至少有一个条目。我尝试添加一个自定义方法。

$.validator.addMethod('checklist', function(value, element) {
  if ($("#currentimp").val() ==""){
    return false;
    } else return true;
  }, "Listbox is empty");

然后在规则中,我有以下内容:

currentimp: {
   checklist:true
}

不确定是否有更好的方法来实现这一目标,但我还没有看到任何关于我正在尝试做的事情的好例子。我还将表单按钮更改为提交按钮,但除非我向提交处理程序添加提交功能,否则它不会提交。这正常吗?

如果列表框是某种选择或单选,则只需使用required:true规则,无需创建自己的自定义规则。

引用 OP

"我需要一种方法来确保在满足验证之前,一个列表框中至少有一个条目。">

如果"listbox"是指<select multiple="multiple">,则无需编写自定义方法;您将使用required规则。

验证select的诀窍是,您的第一个<option>必须包含value=""

HTML

<select name="currentimp" id="currentimp" multiple="multiple">
    <option value="">...</option>
    <option value="1">option 1</option>
    <option value="2">option 2</option>
    <option value="3">option 3</option>
    <option value="4">option 4</option>
</select>

j查询

$(document).ready(function () {
    $('#myform').validate({
        rules: {
            currentimp: {
                required: true
            }
        }
    });
});

演示:http://jsfiddle.net/5GKbF/


引用 OP

"我还将表单按钮更改为提交按钮,但除非我向提交处理程序添加提交功能,否则它不会提交。这正常吗?

不,这不正常。

jQuery Validate 插件将始终捕获任何带有type="submit"按钮的点击,只要它包含在您的<form></form>标签中。

<input type="submit" ...<button type="submit" ...都是可以接受的。

submitHandler回调不是必需选项

如果省略submitHandler回调选项,则在成功验证后,表单将提交到 action 属性中指定的 URL。

<form action="myScript.php" ...

通常,仅当您要绕过action并通过.ajax()提交表单和/或执行其他功能时,才会使用该submitHandler