我可以这样做:
validator.showErrors({ "nameOfField" : "ErrorMessage" });
这样可行,但是如果我尝试做这样的事情:
var propertyName = "nameOfField";
var errorMessage = "ErrorMessage";
validator.showErrors({ propertyName : errorMessage });
它会抛出'element is undefined'错误。
答案 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>