0

JQuery 验证器插件使用“名称”,我想通过 ID 动态查找它。我的 $test 变量返回一个名称正确的字符串,但是我不能使用字符串。

如何使用此变量替换硬编码名称 (ctl00$MainContent$ListBox1)?

代替:

<script type="text/javascript">
    $(document).ready(function () {
        var $test = $("#ListBox1").attr("name");

        $("#form1").validate({
            rules: {
                ctl00$MainContent$ListBox1: {
                    required: true,
                    rangelength: [0, 4]
                }
            },
            messages: {
                ctl00$MainContent$ListBox1: {
                    required: "Please select a state",
                    rangelength: "Please select maximum 4 states"
                }
            },
            errorLabelContainer: $("#message")
        });
    });
</script>

我想使用类似的东西:

$("#form1").validate({
     rules: {
         $test: {
              required: true,
              rangelength: [0, 4]
          }
      },
4

1 回答 1

1

您实际上无法替换成员 ID。但是,您可以扩充对象:

$(document).ready(function () {
    var test = $("#ListBox1").attr("name");
    var validators = {
        rules: {},
        messages: {},
        errorLabelContainer: $("#message")
    };

    validators.rules[test] = {
        required: true,
        rangelength: [0, 4]
    };
    validator.messages[test] = {
        required: "Please select a state",
        rangelength: "Please select maximum 4 states"
    }

    $("#form1").validate(validators);
});

现在您的messagesrules对象都包含一个具有您保存名称的成员。

于 2012-08-01T15:36:06.957 回答