JQuery:即时验证

时间:2011-08-13 20:56:23

标签: jquery

我有一个调用php文件的脚本,每次更改选择框(类别)时都会显示正确的字段。除了每一行,还有一个值(0或1)来显示该字段是否需要。如果你看下面,数据上的each()函数显示“key”是行,“val”是否是必需的。

我目前检查是否需要它,然后将“key”推入一个数组。现在,棘手的部分,我想修改validate函数以包含数组“req”中的所有元素(基本上动态建立验证要求)。目前,只需要“类别”(需要将其添加到验证的“规则”部分)

$('#category').change(function() {
    var cid = $(this).val();

    $.get('./ajax/get_cat_info.php?cid=' +cid, function(data, textStatus) {

        var req = new Array();

        $.each(data, function(key, val) {

            $('#' + key).show();
            if(val == 1) {
                req.push(key);
            }
         });
    }, 'json');

    // Validation:
    $("#submissionForm").validate({
        rules: {
            category: "required"
        },
        messages: {
            category: ""
        }
    }); 
});

1 个答案:

答案 0 :(得分:0)

这样的事情有帮助吗?

$('#category').change(function() {
    var cid = $(this).val();
    var myRules = cid.data('rules') || {};

    $.get('./ajax/get_cat_info.php?cid=' +cid, function(data, textStatus) {
        $.each(data, function(key, val) {
            $('#' + key).show();
            if(1 == val) {
                myRules[key]="required";
                cid.data('rules',myRules);
            }
         });
    }, 'json');

    // Validation:
    $("#submissionForm").validate({
        rules    : $.extend({category: "required"},cid.data('rules')),
        messages : {
            category: ""
        }
    }); 
});

http://api.jquery.com/jQuery.extend/

http://api.jquery.com/data

这种在本地存储它的方法是否会提供一种有用的机制?

谢谢, MyStream