jquery.validate验证禁用字段

时间:2011-06-19 15:33:04

标签: javascript jquery validation

我在表单中有一个下拉列表,它控制使用jQuery的.show()和.hide()在表单上启用/禁用哪些字段。在我的jquery.validate规则中,我有所需的所有字段。

这是我的jquery.validate规则的样子

$("#new_course").validate({
ignore: ":disabled",
rules: {
"course_init_on": {required: true},
"mins_before": {required: true},
    .....

使用上面的代码,它仍然会验证隐藏的字段并停止提交表单。

4 个答案:

答案 0 :(得分:9)

我可以看到你添加了忽略“:disabled”,它不同于“:hidden”

我认为你应该使用:

$("#new_course").validate({
ignore: ":hidden",
...

答案 1 :(得分:1)

如果您确实要禁用表单元素(浏览器可能应该发布该数据),请使用以下命令:

$("#elm").attr("disabled", "disabled");

然后上面的代码将完美运行,您不会将不必要的数据发布到服务器:)

答案 2 :(得分:0)

尝试:

$("#new_course").validate({
ignore: ":hidden",
rules: {
"course_init_on": {required: true},
"mins_before": {required: true},
    .....

答案 3 :(得分:0)

在validate.js(硬编码)中未选中已禁用:

elements: function() {
            var validator = this,
                rulesCache = {};

            // select all valid inputs inside the form (no submit or reset buttons)
            return $(this.currentForm)
            .find("input, select, textarea")
            .not(":submit, :reset, :image, [disabled]");
          }

您必须使用readonly属性