【问题标题】:JQuery string to objectJQuery 字符串到对象
【发布时间】:2012-08-01 15:27:25
【问题描述】:

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]
          }
      },

【问题讨论】:

    标签: javascript jquery jquery-plugins validation object-literal


    【解决方案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 对象都包含一个具有您保存名称的成员。

    【讨论】:

    • 您好 Torsten,感谢您的回答。这不正是我要找的。我已经编辑了我的问题以使其更清楚。
    • 其实这正是我的答案所包含的。您不能将变量用作文字中的 id。但是,您可以做的是创建一个对象,然后使用变量向该对象添加成员。我会相应地修改我的答案。
    猜你喜欢
    • 2015-12-24
    • 2012-07-30
    • 1970-01-01
    • 1970-01-01
    • 2012-08-09
    • 1970-01-01
    • 1970-01-01
    • 2012-10-11
    • 1970-01-01
    相关资源
    最近更新 更多