2011-12-14 9 views
2

javascript関数から、div clickイベントで新しい選択ボックスを作成しています。Dojo dijit.form.select:新しい選択ウィジェットを作成した後、選択した古いウィジェットの値を変更することはできません

ユーザーがdivをクリックすると、新しい選択ボックスがページの他の場所(他のものとともに)に作成されます。

は具体的には、divのクリックで、私は、フォームの(javascript関数で)文字列を作成します。

<select id="derp"+divName dojoType="dijit.form.Select" onChange="dosomething()"> 
    <option value="foo">foo</option> 
    <option value="bar">bar</option> 
    ... 
</select> 

は、その後、私は選択上記をウィジェット化関数を呼び出す:

function makeDojoWidget(digitID){ 
    var widget = new dijit.form.Select({},digitID); //options,elementID 
} 

それはちょうど良いウィジェットを作成します。ユーザーが別のdivをクリックすると、別の選択ボックスが作成されます。しかし、新しい選択だけが編集可能です。つまり、他の選択ボックスの選択値を変更することはできません。

私はdijitとしてレンダリングしようとしないとうまくいくので、dojoの問題です(つまり、通常のselectを作成すると、選択した値をすべて変更できます。新しい選択)。

私は困惑しています...どんな提案ですか?

+0

varウィジェットを関数のスコープ外に宣言するとどうなりますか? – perissf

+0

あなたの 'digitID'は一意ですか? Widgetをプログラム的に作成して配置していない理由はありますか? – BuffaloBuffalo

答えて

0

強制的に有効にしてください。 falseに読み取り専用に設定し、あなたの関数内のいくつかの単語で

function makeDojoWidget(digitID){ 
var widget = new dijit.form.Select({},digitID); //options,elementID 
} 

function makeDojoWidget(digitID){ 
var widget = new dijit.form.Select({readOnly:false},digitID); //options,elementID 
} 
関連する問題