1

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

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

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

currentimp: {
   checklist:true
}

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

4

2 回答 2

1

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

于 2013-09-26T20:20:46.423 回答
1

引用操作

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

如果通过“列表框”,您的意思是<select multiple="multiple">,那么您不需要编写自定义方法;你会使用required规则。

验证 a 的诀窍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>

jQuery :

$(document).ready(function () {

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

});

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


引用操作

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

不,这不正常。

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

两者<input type="submit" ...<button type="submit" ...可以接受。

submitHandler回调不是强制性选项。

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

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

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

于 2013-09-27T17:37:46.167 回答