2012-03-15 4 views
0

자습서의 demo입니다. 예외적으로 codeigniter에는 없으므로 다시로드 할 때 다시 채워지지 않습니다.Repopulating Jquery 다중 선택 상자?

오류가있을 경우 양식의 값을 다시 채울 수있는 codeigniter를 사용하고 있습니다. 따라서 제출할 때 오류가 발생하면 양식이 다시로드되어 동일한 값으로 유지됩니다 (기본값 "0 , JQuery와이 선택되어 다시, 우리는 페이지에서 확인 트리거 ("변화") "".city 마지막 코드에 ....)

//.country & .city are slection box, once .country is select it will display 
    // .city and the country cities. 

jQuery(document).ready(function(){ 

    jQuery(".country").bind("change click", function(){ 

    var country = jQuery(".country").val();  

    jQuery.ajax({ 
      type: "POST", 
      url: "/get/locations", 
      data: ({country : country }), 
      beforeSend: function(){ jQuery("").show(); }, //this is to load an effect (I have empty it for now) 
      complete: function(){ jQuery("").hide(); }, 
      success: function(response){ 
       jQuery(".city").html(response); 
       if(country=== '0'){ 
       //The default (<option value="0">Select</option> 
        jQuery(".city").hide(); 
       } else{ 
        jQuery(".city").show(); 
       } 
      } 
     }); 
    }).trigger("change"); 

을 표시되지 않습니다 "그렇다면 예를 들어 값 2 (국가 X)가 CI에 의해 다시 채워지면 변경하거나 클릭하지 않고 국가 X의 도시를 보여줍니다.

codeigniter가 .city 선택을 다시 채울 수 없다는 점을 제외하면 모두 완벽하게 작동합니다. 문서가 준비되면 값을 얻으므로 & codeigniter는 .city 선택 상자 내에서 공백 값을 보게됩니다.

jquery로 .city를 다시 채우거나 오류가있는 경우 코드를 다시 채울 수있는 방법이 있습니까?

html로는 볼 수 있었다 방법에 대한 예 : 선택은 (그것이 것처럼 들린다) 제대로 설치되어있는 경우

<select class="country"> 
      <option value="0">Select</option> 
      <option value="1"> USA </option> 
    </select> 
    <select class="city" style="display:none;" > 
    </select> 
+0

그러면 beforeSend : function() {jQuery (""). show(); 오류가 발생합니다. }, 완료 : function() {jQuery (""). hide(); },'선택자가 없거나 coz 선택자가 비어있어 전체 스크립트가 작동하지 않고'attr ('selected', 'selected')'및'attr ('selected', '')'트릭을 수행해야합니다 – Val

+0

@Val 무엇을 의미합니까? 국가 선택자가 있습니다. 도시 선택자는 "url :"/ get/locations "에서 결과를 가져온 후에 채워집니다. 나는 그것을 점검 할 것이다. –

답변

0

, 당신은 $('.country').change();으로 변경 기능을 트리거 할 수 있습니다. 그러면 .city 선택 드롭 다운 메뉴가 다시 채워집니다. 그러나 은 이전에 선택한 도시를으로 선택하지 않습니다. 옵션을 채우기 만합니다.