2012-11-10 6 views
-1

내 스크립트에서 아래 오류가 나타납니다. 도와주세요 :스크립트에 오류가 있습니다. json에서 데이터 가져 오기

missing : after property id 
[Break On This Error] 

data.modules[2].fields[0].name:"required"; 

PFB 스크립트 :

$("#frm").validate({ 
    "rules": { 
     data.modules[2].fields[0].name: "required"; 
     data.modules[2].fields[1].name: { 
      "required": "true", 
      data.modules[2].fields[1].name: "true" 
     } 

     "messages": { 
      data.modules[2].fields[0].name: "Enter your firstname", 
      data.modules[2].fields[1].name: { 
       "required": "Please enter a valid email address", 
       "minlength": "Please enter a valid email address" 
      } 
     } 
    }); 

이 내 HTML 양식입니다 :

html += '<form id="frm" method="get" type='+data.modules[2].type+' class='+data.modules[2].attributes.class+'name='+data.modules[2].name+ 
        'action='+data.modules[2].action+'><p>'+data.modules[2].title+'</p>' 
        html += '<label class="firstname">'+data.modules[2].fields[0].label+'</label>'; 
        html += '<input type='+data.modules[2].fields[0].type+'name='+data.modules[2].fields[0].name+'value=' 
        +data.modules[2].fields[0].value+'/>'; 
        html += '<label class="Email">'+data.modules[2].fields[1].label+'</label>'; 
        html += '<input type='+data.modules[2].fields[1].type+'name='+data.modules[2].fields[1].name+'value=' 
        +data.modules[2].fields[1].value+'/>'; 

내가 경고를 제공함으로써 테스트 위의 html.have에 정확한 값을 얻고있다.

+1

오류가 아닌 코드를 게시해야합니다. – undefined

+0

몇 가지 입력 사항을 보여주는 양식 html의 샘플을 게시하십시오. 플러그인은 규칙과 메시지 객체에 대해'input' 이름 속성을 사용하며 자바 스크립트 객체 표기법을 준수해야합니다. – charlietfl

답변

0

data.modules[2].fields[0].name을 개체 리터럴의 식별자로 사용할 수 없습니다. 식별자는 항상 표현식의 값이 아닌 이름입니다.

식별자로 값을 사용하려면 먼저 개체를 만든 다음 인덱싱 구문을 사용하여 속성을 설정해야합니다. 예 : 그게 무슨 얘기하는 것은 불가능입니다)

var obj = {}; 
obj[data.modules[2].fields[1].name] = "required"; 

(난 당신이 만들려고하는 객체의 실제 코드를 작성하려고했으나 코드는 그렇게 (즉, 잘못되거나 누락 된 분리기, 타의 추종을 불허하는 괄호를 깨 객체의 구조가 어떻게되어 있는지에 대한 지식없이해야합니다) 당신은 자바 스크립트 사전의 요소 사이에 쉼표를 포함 할 필요가

+0

그러면 복잡 할 것입니다. 이미 JSON이 제공됩니다. 그래서 내 스크립트에서 양식의 유효성을 검사하는 간단한 방법 ?? 도와주세요. – user1814044

+0

네, 객체의 식별자에 값을 사용하기 때문에 약간 복잡합니다. 하나의 명령문에 그와 같은 객체를 만드는 좋은 방법이 없으므로 조각으로 만들어야합니다. 객체의 문자열 포맷을 사용하고, 식별자를 대체하고, 객체로 파싱하기 위해'eval'을 사용하여 템플릿 접근 방식을 사용할 수 있습니다. 그러나 단일 객체로 수행 할 수 있다고해도 꽤 복잡합니다. 성명서. – Guffa

0

:. 당신은 객체 리터럴로 키로 변수를 사용할 수 없습니다

$("#frm").validate({ 
    "rules": { 
     data.modules[2].fields[0].name: "required", 
     data.modules[2].fields[1].name: { 
      "required": "true", 
      data.modules[2].fields[1].name: "true" 
     }, 

     "messages": { 
      data.modules[2].fields[0].name: "Enter your firstname", 
      data.modules[2].fields[1].name: { 
       "required": "Please enter a valid email address", 
       "minlength": "Please enter a valid email address" 
      } 
     } 
    }); 
+0

@ bdesham- 시도해보십시오. 여전히 누락되었습니다 : error – user1814044

+1

쉼표에 대해서는 정확 합니다만, 오류의 원인 인 식별자로 사용되는'data.modules [2] .fields [0] .name '과 같은 값입니다. 스크립트 파서는 첫 번째로 필요한 쉼표만큼 멀지 않습니다. – Guffa

0

을 통사론. 프로그래밍 방식으로 구성 개체를 작성하여 원하는 것을 얻을 수 있습니다.

var field1 = data.modules[2].fields[0].name; 
var field2 = data.modules[2].fields[1].name; 

var rules = {}; 

rules[field1] = "required"; 
rules[field2] = { 
    "required": true 
}; 

var messages = {}; 

messages[field1] = "Enter your firstname"; 
messages[field2] = { 
    "required": "Please enter a valid email address", 
    "minlength": "Please enter a valid email address" 
}; 

$("#frm").validation({"rules": rules, "messages": messages}); 

또한 코드에 닫는 중괄호가 없습니다. 들여 쓰기로 과 messagesmessages이 아닌 rules이 아닌 같은 레벨에 있다고 가정합니다.

+0

시도해보십시오. . 첫 번째 라인 자체에 오류 : 아직 행방 불명을 받고 메신저 – user1814044

+0

$ ("#의 FRM은") 검증 ({ \t var에 필드 1 = data.modules [2] .fields [0] .name을, \t \t \t \t \t var에 FIELD2 = data.modules [2] .fields [1].이름; \t \t \t \t \t var rules = {}; \t \t \t \t \t [field1] = "required"; \t \t \t \t \t 규칙 [FIELD2] = { \t \t \t \t \t \t \t "필수"참 \t \t \t \t \t}; \t \t \t \t \t var messages = {}; \t \t \t \t \t 메시지 [field1] = "이름 입력"; \t \t \t \t \t 메시지는 [FIELD2] = { 는 \t \t \t \t \t \t \t "필수", "유효한 이메일 주소를 입력하십시오" \t \t \t \t \t \t \t "MINLENGTH": "유효한을 입력 해주세요 이메일 주소 " \t \t \t \t \t}}; \t \t \t \t \t}); – user1814044

+0

jquery.validation.js를 사용하고 있습니다. – user1814044