即使包含元素,MVC + Jquery Validator也不会对禁用的字段起作用

时间:2014-11-20 13:56:49

标签: javascript jquery asp.net-mvc validation

如果我打开一个旧论点的新问题,请原谅我,但我找不到任何有效的解决方案。 我有一个表单,其中某些字段可以被禁用但必须进行验证(因为用户不允许填写而禁用)。

由于原始Javascript Validator排除了提交/重置/图像/禁用,因此我决定修改此文件以使禁用的字段得到验证。

传递的代码:

.not(":submit, :reset, :image, [disabled]")

为:

.not(":submit, :reset, :image")

但我的残疾人字段仍然被忽略。 我尝试了主题的各种变化,但我仍然有问题。

感谢任何新的提示!

1 个答案:

答案 0 :(得分:0)

我认为我找到了优秀且优雅的解决方案 - 只需使用html属性readonly,所有功能都可以正常运行。

<input type="text" readonly="readonly" />

问题是 已禁用字段未按表单提交 ,因此可能未经过验证。 W3C HTML4 Spec

其他解决方案,可在此question

中找到
var val;
$("#clientConfigurationForm").on("change", "input[type=checkbox]", function () {
    val.resetForm();
    $(this)
        .closest("div")
        .find("input, select")
        .not(this)
        .not(":submit")
        .prop("disabled", !$(this).prop("checked"))
        .not(":disabled")  
        .each(function () {
          $(this).valid();
        });
});

val = $("#clientConfigurationForm").validate({

    onkeyup: function (element) {
        $(element).valid();
    },
    focusInvalid: false,
    submitHandler: function (form) {
        alert("submitted");
    }
});