2010-12-13 13 views
2

を選択:使用ExtJSには、私は次のコードをフォーム持って

<select multiple="multiple" id="something" class="boo" name="foo"> 
    <option value="40">AAAAA</option> 
    <option value="39">BBBBB</option> 
    <option value="15">CCCCC</option> 
</select> 

を現在、このフォームがあるように見えるバインドさのonChange機能、:

var updateValues = function(event, target, object){ 
    var selectbox = Ext.get(target.id); 
    var values = []; 
    for(i=0; i<selectbox.dom.options.length; i++){ 
     if (selectbox.dom.options[i].selected) 
      {values.push(selectbox.dom.options[i].value);} 
    } 
    callSomeFunc(values); 
} 

は、正しい方法を見せてください、これを行うにはExtJSを使用します。私は、jQueryのval()のように、選択された値の配列を返す関数があるはずだと思います。私が正しくない場合は、コメントを書いてください。

+0

。 – Mchl

+1

複数の選択を処理するネイティブのExtJS関数がないと思われます。 Extコンポーネントを使用すると、多数のユースケースでかなりオーバーヘッドになります。 – edgars

答えて

0

ComboBoxのような機能と複数の選択を組み合わせたい場合は、SuperBoxSelectユーザー拡張を使用することをお勧めします。すぐに使用できるLook&Feelがあなたに合っていない場合は、付属のCSSを変更または削除して簡単に変更できます。

コンポーネントは、選択した値を取得するための優れた方法を提供します。ユーザーが値を選択すると、コンポーネントは値を記憶して内部的に保存します。逆に、ユーザーが値を削除すると、コンポーネントはその状態も同様に処理します。オリジナルの機能性があれば、フォームを送信する準備ができたら値を取得するメソッドを呼び出すだけです。

興味がある場合はここにデモページがあります。それはあなたのJavaScriptで含めることが非常に簡単ですので、それはユーザーの拡張だと心配しないでください:あなたは実際に代わりにプレーンなHTMLフォームの内線コンポーネントを使用した場合、それは非常に簡単になり

http://www.technomedia.co.uk/SuperBoxSelect/examplesRemote.html

関連する問題