2009-09-07 5 views
3

AJAX 응답을 기반으로 한 상자에서 바로 빌드하고 싶습니다. 다음 코드 조각이 작동jQuery로 을 즉석에서 작성하십시오.

<option value="1">1</option> 
<option value="2">2</option> 
<option value="3">3</option> 

:

$("#PAG_PLACEMENT").change(function(){ 
      $.ajax({ 
      type: "post", 
      url: "untitled.asp", 
      data: "iLanguage=1&iPlacement="+$("#PAG_PLACEMENT").val(), 
      success: function(responseText){ 
        //alert(parseInt(responseText)); 
        opts = parseInt(responseText); 
          var routeSelect = $("#PAG_POSITION").get(0); 
          routeSelect.options.length = 0; //reset to zero length 
          for(var i = 0; i < opts; ++i) { 
          routeSelect.options[i] = new Option(i+1,i+1); 
          } 
        } 
      }); 
    }); 

하지만 난에 "jQueryfy"부분을하고자하는에서 responseText가 3 즉, 내가 3 옵션을 구축하고 싶습니다 :

var routeSelect = $("#PAG_POSITION").get(0); 
    routeSelect.options.length = 0; //reset to zero length 
    for(var i = 0; i < opts; ++i) { 
    routeSelect.options[i] = new Option(i+1,i+1); 
} 

보다가, 때때로에서 responseText가 null (페이지가 비어)와 구문 분석은 물론 "NaN이"의 제공 : 음,이 경우에 나는 간단한으로 채우기 싶습니다

<option value="0">0<value> 

저는 JS 초보자이며이 작업을 수행하는 방법을 모른다 ... 도와 주실 수 있습니까?

답변

3

당신은 할 수 있습니다 :이 도움이

var routeSelect = $("#PAG_POSITION").get(0); 

routeSelect.html(''); //clear-out options 

if (isNaN(opts) || opts == 0) { 
    //Handles case where your response is invalid or zero 
    routeSelect.append($('<option/>').val(0).html(0)); 
} else { 
    //Add n items to the dropdown 
    for(var i = 0; i < opts; ++i) { 
     routeSelect.append($('<option/>').val(i).html(i)); 
    } 
} 

희망을.

+0

1. 거기에 마지막으로'>'가 없습니다. 2. jQuery 문서에 따른 권장 형식은'$ ('')'이 아니라'$ ('

+0

1. 감사합니다. 2. 나는 그 btw 몰랐다 :) –

관련 문제