动态添加jQuery验证规则会产生错误

时间:2016-12-07 08:57:51

标签: javascript jquery asp.net jquery-validate

我创建了一个jQuery函数来放置一个SELECT元素,该元素创建一个change handler来检查select项的值是否具有某个值,如果是,则显示一个元素。 它还使用以下代码进行jQuery验证所需的元素:

fieldTextInputPlaceholder.find("input[type=text]").rules("add", {
                    required: true,
                    messages: {
                        required: "Subject is mandatory"
                    }
                });

jQuery函数定义如下

$(document).ready(function () {
    (function ($) {
        $.fn.dropdownlist = function (
            ......
            this.change(function () {
                doTheWork($('#' + event.target.id));
            });
            .....
            //doTheWork(this);

好消息是它有效。

坏消息是我想在页面加载时执行onchange代码。

但是当我这样做时,我收到了这个错误:

jqueryval:格式化:209未捕获的TypeError:无法读取未定义的属性“设置”

我尝试过两种方式: $('#SubjectDropDownValueId').trigger('change');

我认为这不是一个好方法

我也通过取消注释这行代码直接运行代码来完成它

//doTheWork(this);

在这两种情况下,我在这部分中得到了jQuery验证中的相同错误(这是缩小的jQuery验证代码):

 rules: function(t, i) {
            var r = this[0], e, s, f, u, o, h;
            if (t) {
                e = n.data(r.form, "validator").settings;

修改

我删除了所有代码,只在onload中添加了验证器,这也给出了同样的错误

<script>
    $(document).ready(function() {
        $('#CMSubject').rules("add", {
            required: true,
            messages: {
                required: "subject is mandatory"
            }
        });
    });
</script>

0 个答案:

没有答案