代码之家  ›  专栏  ›  技术社区  ›  ChadT

jquery验证器,以编程方式显示错误

  •  4
  • ChadT  · 技术社区  · 17 年前

    我可以这样做:

    validator.showErrors({ "nameOfField" : "ErrorMessage" });
    

    不过,如果我尝试这样做的话,那就没问题了:

    var propertyName = "nameOfField";
    var errorMessage = "ErrorMessage";
    validator.showErrors({ propertyName : errorMessage });
    

    它引发“element is undefined”错误。

    3 回复  |  直到 17 年前
        1
  •  7
  •   Christian C. Salvadó    17 年前

    如何:

    var propertyName = "nameOfField";
    var errorMessage = "ErrorMessage";
    
    var obj = new Object();
    obj[propertyName] = errorMessage;
    
    validator.showErrors(obj);
    

    值得注意的是,以下三种语法是等效的:

    var a = {'a':0, 'b':1, 'c':2};
    
    var b = new Object();
    b['a'] = 0;
    b['b'] = 1;
    b['c'] = 2;
    
    var c = new Object();
    c.a = 0;
    c.b = 1;
    c.c = 2;
    
        2
  •  1
  •   Sciolist    17 年前

    顺便说一句,您得到“element is undefined”错误的原因是:

    var propertyName = "test";
    var a = {propertyName: "test"};
    

    等于..

    var a = {"propertyName": "test"};
    

    也就是说,您没有将propertyname的值作为键分配,而是将propertyname作为字符串分配给它。

        3
  •  0
  •   bendewey    17 年前

    那应该行得通。可能是缺少;在错误消息发出后,正在丢弃某些内容。您使用的浏览器是什么?

    此警报在IE7上正常工作

    <html>
    <head>
        <script type="text/javascript" src="http://jqueryjs.googlecode.com/files/jquery-1.3.1.min.js"></script>
        <script type="text/javascript">
            $(function() {
                var name = "name";
                var value = "value";
                var obj = eval("({ '"+name+"' : '"+value+"' })");
                alert(obj[name]);
            });
    
        </script>
    </head>
    <body>
    </body>
    </html>