JQuery Validate下拉列表

时间:2012-09-17 21:58:05

标签: jquery html validation drop-down-menu jquery-validate

我正在使用here中的验证插件。我正在尝试强制用户在下拉列表中选择一个选项,所以这是我的html列表:

Select the best option<br/>
<select name="dd1" id="dd1">
<option value="none">None</option>
<option value="o1">option 1</option>
<option value="o2">option 2</option>
<option value="o3">option 3</option>
</select> <br/><br/>​

这是jquery验证的东西:

$("#everything").validate({
    onsubmit: true,
    rules: {
     dd1: {
      required: {
        depends: function(element) {
            return $("#dd1").val() == "none";
        }
      }
    },
    messages: {
     dd1: {
      required: "Please select an option from the list, if none are appropriate please select 'Other'",
     },
    }
});

我没有看到任何问题,但即使我从下拉列表中选择“无”并单击“提交”,它也不会对其进行验证,因此不会显示任何消息。谁能告诉我我做错了什么?

7 个答案:

答案 0 :(得分:64)

required()州的documentation

  

要强制用户从选择框中选择一个选项,请提供一个空的选项,例如<option value="">Choose...</option>

通过在value="none"标记中添加<option>,您可以阻止验证调用。您还可以删除自定义验证规则,从而简化代码。这是一个jsFiddle显示它在行动:

http://jsfiddle.net/Kn3v5/

如果您无法将value属性更改为空字符串,我不知道该告诉您什么...我找不到任何方法让它进行验证。

答案 1 :(得分:6)

正如我们所知,jQuery validate plugin invalidate具有空值时选择字段。为什么我们不在需要时将其值设置为空白。

是的,您可以使用一些预定义值验证选择字段。

$("#everything").validate({
    rules: {
        select_field:{
            required: {
                depends: function(element){
                    if('none' == $('#select_field').val()){
                        //Set predefined value to blank.
                        $('#select_field').val('');
                    }
                    return true;
                }
            }
        }
    }
});

我们可以为选择字段设置空白值,但在某些情况下我们不能。对于Ex:使用为您生成Dropdown字段的函数,您无法控制它。

我希望它对我有所帮助。

答案 2 :(得分:3)

这是我的解决方案:

我在