jQuery Validator,以编程方式显示错误

时间:2009-02-06 04:03:09

标签: javascript jquery

我可以这样做:

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

这样可行,但是如果我尝试做这样的事情:

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

它会抛出'element is undefined'错误。

3 个答案:

答案 0 :(得分:7)

怎么样:

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;

答案 1 :(得分:1)

顺便说一句,你得到'元素未定义'错误的原因是因为:

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

相当于..

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

即,您没有将propertyName的值指定为键,而是将propertyName指定为字符串。

答案 2 :(得分:0)

这应该可以正常工作。也许缺乏一个;错误消息后抛出一些东西。你使用什么浏览器?

此警报适用于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>