是的,这可能是其他一百万个问题的重复,但对我来说它仍然无效。 根据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。
答案 0 :(得分:2)
在您的下拉列表中添加name
属性。这应该可以解决您只看到第一个下拉列表显示为无效的问题。