下拉/选择列表不会触发jQuery验证

时间:2013-05-14 11:58:45

标签: jquery jquery-validate

是的,这可能是其他一百万个问题的重复,但对我来说它仍然无效。 根据jQuery验证文档,只需让第一个默认项具有空值(value =“”),并且类“required”就足够了。但它拒绝正常工作。 我已经正确设置了所有内容,它在复选框,单选按钮,文本输入上工作正常没有问题,但选择列表?不。

这是一个简单的例子:

<select class="required" id="dayDropdown" data-bind="'value': StudentBaseData.day">
    <option value="">Dag</option>
</select>
<select class="required" id="monthDropdown" data-bind="'value': StudentBaseData.month">
    <option value="">Måned</option>
</select>
<select class="required" id="yearDropdown" data-bind="'value': StudentBaseData.year">
    <option value="">År</option>
</select>

三个下拉列表,都是必需的。就在这里,奇怪的是只有第一个选择验证。其他两个被忽略了。在页面的下方,我还有两个拒绝任何验证的选择列表。

以下是我启动验证插件的地方:

$(function(){
    $.metadata.setType("attr", "validate");
    $("#StudentsForm").validate({
        ignore: ""
    });
});

我强制在提交表单时触发验证:

$('#updateProfileButton').click(function subscribe() {
    if($("#StudentsForm").valid()=== true){ //force trigger validation
        // do stuff
    } else { // if jquery validation fails
        // TODO
    }
});

就像我说的那样,它适用于一切但是选择列表。

如果重要,选择列表会自动填充两个javascript函数(填写日期等),但初始默认值设置如上所示。奇怪的是它适用于第一个选择框,就是这样。

我进行了搜索和搜索,但我从来没有找到任何有同样问题的人。

PS:“数据绑定”来自knockout.js。

1 个答案:

答案 0 :(得分:2)

在您的下拉列表中添加name属性。这应该可以解决您只看到第一个下拉列表显示为无效的问题。