2012-12-27 2 views
0

왜 이런 식으로 작동하지 않는지 알지 못합니다. json 파일에서 루프로 만든 텍스트 필드의 값을 가져 오려고합니다.JSON 루프에서 만든 Jquery 입력 필드를 입력하십시오.

이 코드에서는 맨 아래에 값 (즉, {alert()}을 반환하고 정의되지 않은 값을 가져올 수 있는지 확인하기 위해 간단한 클릭 만 수행합니다. 그러나 '#name'을 '입력'이 있지만 여러 입력 필드의 첫 번째, 두를 캡처에 넣어.

를 어떤 도움이 정말

JSON

{ 
"Controls": [{ 
    "Button":[{ "Name":"Button", "x": "1","y": "2","width": "3","height": "4","Transition":"" }], 

    "Image":[{"x": "5","y": "6","width": "7","height": "8"}], 

    "TextField":[{"x": "9","y": "10","width": "11","height": "12","Rows":""}] 
}] 

}

코드를 감사합니다 (이

//Slide In Attributes Panel Based on Selected Object 
$(document).on('click', '#code li', function() { 
    var index = $('#code li').index(this); 
    var selected = $(this).text(); 
    switch (selected) { 
     case selected: 
      $('#options').hide(); 
      hidePanels(); 
      $('#temp').remove(); 
      $('#objectAttributes').show("slide", 200); 
      break; 

     //If it does work show what variable is being used 
     default: 
      alert(selected); 
      break; 
    } 

    //Shows Selected LI Index 
    $('#codeIndex').text("That was div index #" + index); 

    //Pull list of Attributes for selected Object 
    $.getJSON('controls.json', function (data) { 
     //Build Attributes List 
     var attributeList = '<div id="temp">'; 
     //Target based on selected object 
     var target = selected; 
     attributeList += '<div>' + target + '<div>'; 
     $.each(data.Controls[0][target][0], function (kk, vv) { 
      attributeList += '<div style="float:right">' + kk + ':' + '<input type="text" id='+ kk + '>' + '</input>' + '</div>'; 
     }); 
     attributeList += '</div></div>'; 
     attributeList += '</div>'; 
     $('#objectAttributes').append(attributeList); 
     $('#temp').append('<div id="editIndex">'+"Modifying index" + " " +index+'</div>'); 

     $(document).on('click', '#saveAttributes', function() { 
      var $x = $('#name').val(); 
      alert($x); 
     }) 
    }); 


}); 
+0

은 JSON 개체 또는 단일 개체를 포함하는 배열입니까? 당신은 중요한 비트 ('$ .each'의 첫 번째 매개 변수)를 보면서 디버깅하기가 어렵다는 점에서 탁월한 닫는 대괄호를 사용합니다 – kieran

+0

내 닫는 중괄호가 코드 블록에 캡처되지 않은 것처럼 보입니다. 내 다른 코드는 json에서 아무런 문제가 없다. 이 예제에서, 나는 'Button' 'Name'필드에서 ID를 가진 입력을 만든 JSON에서 필드 이름을 읽었습니다. 하지만 이드를 목표로하는 것은 효과가없는 것처럼 보입니다. 그러나 그것이 내가 도움이되기를 희망 할 때. – Rob

답변

0

확인이 위 soome해서 getJSON 물건)입니다, 그래서 jsfiddle와 주변의 작은 해킹 후 대답은 내가 처음 생각했던 것보다 훨씬 간단 밝혀졌다. HTML 4.01 클래스 이름과 ID가 대소 문자를 구분 한 이후 (reference) 셀렉터 $('#name')이 JSON Name과 일치하지 않음을 의미합니다.

따라서 간단한 변경 (예 : this simplified jsfiddle)이 원하는대로 작동하는 것 같습니다. 잘하면이 도움이됩니다!

+0

감사합니다. 나는 그걸 놓쳤다는 것을 믿을 수 없다. 도움 감사 – Rob

관련 문제