6

我想知道在最初设置规则时是否可以让 jQuery Validator 插件验证 dom 中尚不存在的元素。

调用 .Rules("add", therules) 方法只会将规则附加到 dom 中当前存在的元素上。如果我要创造一些。验证不会触发。有什么想法吗?

我正在使用的验证器主页:http: //bassistance.de/jquery-plugins/jquery-plugin-validation/

正在通过http://ejohn.org/blog/javascript-micro-templating/创建新元素

基本上有一个ajax调用,服务器返回一堆json(ajaj?),这个json由resig的模板引擎提供。示例模板如下所示:

<script type="text/html" id="ProductsTemplateEdit">
    <td>
        <input type="hidden" value="<#= item.ID #>" id="Edit.ID" name="Edit.ID" />
        <input type="text" value="<#= item.Price#>" id="Edit.Price" name="Edit.Price" />
    </td>
</script>

这些值显然是通过传入的 json 填充的。

我还应该提到我正在使用 xval 验证框架,它基本上会自动为我生成 jquery 验证规则:http: //blog.codeville.net/2009/01/10/xval-a-validation-framework-for- aspnet-MVC/

4

4 回答 4

2

好吧,试试两个。什么是动态添加元素?你不能把 .Rules("add", ) 放到同一个代码中吗?

于 2009-03-23T04:10:09.227 回答
2

嘿,不确定这是否是不礼貌的黑客行为,但它对我有用。在此之前,我在选择器上执行 each() 并遇到与新创建的 Ajaxed 元素相同的问题。

现场的鼠标悬停事件似乎已经成功了,当然你不会对你的 css 感到疯狂:

// >>> MSG/Comment form validator, now and forever...  
    $('form.streamForms').live('mouseover', function(){
        $(this).validate({
            rules: {
                text: "required"

            },
            messages: {
                text: " "
            }
        });    
    });

希望能帮助到你!

于 2010-09-15T20:18:11.407 回答
0

你会想看看 jQuery 1.3 的新Live Events

于 2009-03-23T03:38:32.407 回答
0

以下是我的处理方式。首先我创建了我的验证对象。

    var myvalidations = {};
    myvalidation.registerform = function() { $("#registerform").validate({
            提交处理程序:函数(表单){
                $(form).ajaxSubmit(optionspersonal);
                //提交注册();
            },
                    规则:{
                名: {
                     要求:真,
                     最小长度:5,
                     最大长度:22
                },
                    消息:{
                             名: {
                                 必需:“告诉我们如何称呼您。”,
                     minlength: "您的用户名必须至少包含 5 个字符"
                             }
                     }
             });
        }

现在,每当您创建表单时,请确保它上面有一个 ID 或在某种程度上可以引用它,并在创建它后立即调用您的函数。

    //创建我的内容
    $('.content').html('--fields etc--');
    //添加验证
    myvalidation.registerform();

欢迎任何进一步的建议;但我认为基本上这是正确的方法。

于 2011-09-30T17:43:58.890 回答