2009-02-06 7 views
4

을 보여jQuery를 검사기, 프로그래밍 나는 이런 식으로 뭔가를 할 수있는 오류

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

그리고 그게 내가 시도하고이 같은 일을하지만 경우에, 잘 작동 :

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

그것은이 '요소를 던졌습니다 정의되지 않았습니다 '오류입니다.

+0

var errorMessage = "ErrorMessage"에는 a; 작업 코드의 끝에. 이 질문에 오타 – ChadT

답변

7

무엇에 대해 :

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; 
+0

내 유일한 제안은'new Object()'대신'{}'를 사용하는 것입니다. – travis

0

정상적으로 작동합니다. 어쩌면 a의 부족; 오류 메시지가 나옵니다. 어떤 브라우저를 사용하고 있습니까?

이 경고는 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> 
+0

부족합니다; 질문의 오타입니다 (실제 코드에는 존재하지 않습니다). FF를 사용하고 있습니다 – ChadT

+0

이 예제는 잘못되었습니다. 'var name = "blork"'(이름은 임의적 인 것임)을 설정했다면, 예제는 실패 할 것이다. – yfeldblum

+0

@ Justice thanks. 나는 그것을 작동시키는 예제로 업데이트했다. 하지만 다른 대답은 더 좋습니다. – bendewey

1

:

var propertyName = "nameOfField"; 
var errorMessage = "ErrorMessage"; 

var obj = new Object(); 
obj[propertyName] = errorMessage; 

validator.showErrors(obj); 

는 다음과 같은 세 가지 구문이 동일하다는 것을주의하는 가치가 당신이 '엘름을 얻는 이유 엔트는 방법으로 '이 오류가 정의되어 있기 때문이다

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

은 동일합니다 ..

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

즉, 당신은 당신이있어, 키로 propertyName 형식의 값을 할당하지 않는 propertyName을 문자열로 지정합니다.

관련 문제