2011-08-07 7 views
-2

openURL 메소드에서 반환하는 마지막 ID 변수를 전달하려고합니다. 이 코드입니다 :변수에 JSON 객체 전달

" + ": function() { 
    formCount++; 
    $("#form tbody").append('<tr class="test"><td><input type="text" id="requirement'+formCount+'" class="text ui-widget-content ui-corner-all" /></td><td><input type="text" id="objects'+formCount+'" value="" class="text ui-widget-content ui-corner-all" /></td><td><input type="text" id="andor'+formCount+'" value="" class="text ui-widget-content ui-corner-all" /></td><td><input type="text" id="qty'+formCount+'" value="" class="text ui-widget-content ui-corner-all" /></td><td><div id="del'+formCount+'"><img src="themes/balance/images/delete_button.png" style="cursor:pointer; margin-left: 15px; margin-bottom: 5px;" alt="Delete" /></div></td></tr>'); 

    /* Delete requirement from database */ 
    $("#del"+formCount).click(function(param) { 
     $(this).parent().parent().remove(); // removes whole row in layout 
     var ReqID = ?????; 
     var query = '.requirements.deleteRequirement/'+gameID+'/'+ReqID+''; 
     openURL(url+query, function(param) { }); 
     //alert(url+query);    
    }); 

    /* Add requirement to database */ 
    var query = '.requirements.createRequirement/'+gameID+'/Location/'+id+'/PLAYER_HAS_ITEM/1/1/1/1'; 
    openURL(url+query, function(param) { 
     var CaughtID = new Boolean(param.lastID); 
     if(CaughtID.valueOf()) { 
      $(".test").append('<input type="hidden" id="reqID'+formCount+'" value="'+param.lastID+'" />') 
     } 
     param.lastID = 0; // important! Prevent to keep the last value in the object after add (check in DOM ;)) 

    }); 
} 

내 문제는 그 에 param.lastID을 통과을 REQID하는 것입니다. 나는 $ ("# reqID"+ formCount) .val()을 시도했으나 비동기 함수이기 때문에 아마 undefined를 리턴한다. 내 질문은이 문제를 해결하는 방법입니다.

+0

왜 당신이 기능에' "+"'할당되어이 같은 다른 선택 ... 어쩌면 뭔가를해야 할 수도 있습니다? 나는 이것이 타입 -o 인 것을 희망한다. ... – tjameson

+0

"+"는 버튼이다 : – user874565

+0

그래서, 버튼에 기능을 할당하겠습니까 ?? 그것에서 익명의 사람 ??? – tjameson

답변

0

이벤트 처리기에 대한 유일한 매개 변수는 이벤트 개체입니다.

코드를 올바르게 이해하면 객체를 만들 때 설정 한 값을 얻으려고합니다.

var ReqID = $(this).val()

이 다시 문자열을 당신을 줄 것이며, 그것은 코드에서 작동하도록 당신에게 달려있다 : 당신은 값에서 데이터를 가져해야합니다.

편집 :

경우가 "#del" + formCount

을 정의?

var ReqID = $('reqID' + formCount).val();

+0

"#del"+ formCount가 바로 여기에 정의되어 있습니다. $ ("#form tbody") .append – user874565

+0

그리고 내 솔루션이 작동하지 않았습니까? 특히 내가 준 두 번째. 그게 당신이 그 데이터를 저장하고있는 것 같습니다. 모든 것을 제거하기 전에 아마 데이터를 가져와야합니다 ... – tjameson

+0

부끄러움, 작동하지 않습니다. var에 값이 정의되지 않았습니다. ReqID = $ ('reqID'+ formCount) .val(); 경고 (url + query)가 다음을 반환합니다. http://clip2net.com/s/165wq – user874565