选择框不验证,jqtransform jquery验证

时间:2012-03-17 14:34:02

标签: jquery-validate

尝试使用jquery验证以使用jqtransform。我看到了问题 似乎是隐藏的选择框。它不会将错误类添加到此元素 所以它不会继续添加错误消息!如果我制作jqTransformHidden类 显示:块;它可以工作但是我的所有输入和选择都是可见的,当然我不想这样做。

如您所见,未添加任何错误类。

<select class="required jqTransformHidden" name="currency">
              <option value="">Choose Currency</option>
              <option value="29">ANG - Netherlands Antilles, Guilders</option>
            </select>

2 个答案:

答案 0 :(得分:2)

我有完全相同的问题,这就是我解决它的方法 我使用jquery验证除了选择框以外的所有内容。一旦jquery validate认为我的表单有效,我就为选择框设置了另一个自定义验证。 您可以在selectHandler中检查它。

submitHandler: function(form){
    if(validateSelect()){
        form.submit();
    }
},

然后您可以创建一个validateSelect函数来检查您的选择框。您可以使用jquery .val()

validateSelect = function(){
    if($('#my-select').val()==""){
        return false;
    }else{
        return true;
    }
}

更新:我找到了一个更简单的解决方案!您可以强制jQuery Validate通过在第218行的验证脚本中将ignore: ":hidden",转换为ingnore: "",来检查隐藏字段。这样,每个转换后的字段仍将被验证。您也可以在自定义脚本而不是插件脚本中设置此更改,但我不知道该怎么做。

答案 1 :(得分:0)

我知道这是一个古老的问题,但对于所有正在努力解决这个问题的人来说,这是我的解决方案:

在我的情况下,似乎使用ignore: ""没有选择输入的技巧。我没有使用CSS display: none隐藏隐藏字段,而是使用了position: absolute; top: -9999px; left: -9999px;

最简单的方法是编辑jqTransform.css文件,如下所示:

.jqTransformHidden {
    //display: none;
    position: absolute;
    top: -9999px;
    left: -9999px;
}