2012-03-15 16 views
0

ここでは、私が従ったチュートリアルのdemoですが、例外的にcodeigniterには含まれていないので、再読み込み時に再生成されません。Repopulating Jquery multiple selection box?

私はcodeigniterを使用しています。エラーがある場合はフォームの値を再設定できます。したがって、送信時にエラーが発生した場合、フォームはリロードされ、同じ値を保持します「.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"); 

『トリガー(』変更」)」、我々はページ上のjqueryのをリロードしてくださいがチェックされ、例えば、値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(); }、 'セレクタがないか、セレクタが空であるため、スクリプト全体がうまく動作せず、' attr( 'selected'、 'selected') 'と' attr( 'selected'、 '') 'がトリック – Val

+0

@Valあなたはどういう意味ですか?カントリーセレクタがあり、 "url:"/get/locations "から結果を取得した後に都市セレクタが表示されます。私はそれを確認します。 –

答えて

0

を選択は(それがあるように聞こえるがある)正しく装着されている場合は、あなたが$('.country').change();で変更機能をトリガすることができます。これにより、.city選択ドロップダウンが再作成されます。ただし、は、で以前に選択した都市を選択しません。オプションを入力するだけです。