0

こんにちは、select の ID がどこに登録されているかを再試行するのに苦労しました。考えられる原因:- 1) ParseOnload と Parser.parse() が同じページにある 2) 同じ ID を別の新しい選択に与える 3) 同じ選択を新しい ID で登録する

選択が2回登録される原因がわかりませんでした。

...
...
<div id='main_bContainer' data-dojo-type='dijit/layout/BorderContainer' data-dojo-props='design:"sidebar"'>
        <div id='paneA' class='cP_Left' data-dojo-type='dijit/layout/ContentPane' data-dojo-props='region:"left"'>  
            <div id='surfaceElement1' style='border:1px solid #ccc; margin-bottom:5px; width:317px; height:55px;'><!--these dimensions here in this line override the dimensions as set by createSurface function-->
            <div id='node_meterSelect'></div>   
            </div>

            <div id='surfaceElement2' style='border:1px solid #ccc; width:317px; height:200px;'><!--these dimensions here in this line override the dimensions as set by createSurface function-->
            <div id='node_cardSelect'></div>    
            </div>
        </div>
        <div id='paneB' class='cP_Right' data-dojo-type='dijit/layout/ContentPane'data-dojo-props='region:"center"'>
            <!--<div id='surfaceElement3' style='border:1px solid #ccc;'> <!--width:520px; height:400px;'><!--it's the size-->

            <!--</div>-->
        </div>
    </div>
...
...
...
var meter_Select = new Select
            ({store:memoStore1,
              style:{width:'140px'},
            }, "node_meterSelect");
            meter_Select.startup();

            on(meter_Select, 'change', function(evt)
            {
                    console.debug('Selected Card = '+ meter_Select.value);
                    request.post('listofcards.php',{data:{cardX : meter_Select.value},
                    handleAs:"json"}).then(function(response)
...
...

エラーは「

エラー: id==node_meterSelect でウィジェットを登録しようとしましたが、その ID は既に登録されています" 何が問題なのですか? アドバイスしてください.. よろしくお願いします。

4

2 に答える 2

0

私はあなたの解決策を見つけました。すべての必要な値を正しい変数にマップしていません! したがって、レジストリとコンボボックスは正しくマッピングされていません! 「コンボボックス」を「オン」にマップします。

このjsfiddleを見てください:

http://jsfiddle.net/ejEGr/7/

パラメータが欠落している関数ヘッド:

function (parser, ready, dom, domConstruct, gfx, declare, 
_WidgetBase, Memory, Select, ObjectStore, request, on)

修正後:

function (parser, ready, dom, domConstruct, gfx, declare, 
_WidgetBase, Memory, Select, ObjectStore, request,box,registry, on)

そのため、ボックスとレジストリを追加する必要がありましたが、今ではすべて正常に動作するはずです。

于 2013-03-20T07:25:12.573 に答える
0

あなたのコードに基づいて動作するjsfiddleは次のとおりです。

http://jsfiddle.net/JxpRC/2/

コードのどこかで id を使用したのではないでしょうか?

require(["dijit/form/Select",
  "dojo/data/ObjectStore",
  "dojo/store/Memory","dojo/domReady!"
], function(Select, ObjectStore, Memory){

     var store1 = new Memory({
    data: [
      { id: "foo", label: "Foo" },
      { id: "bar", label: "Bar" }
    ]
  });
    var os = new ObjectStore({ objectStore: store1 });

var meter_Select = new Select
            ({store:os,
              style:{width:'140px'},
            }, "node_meterSelect");
            meter_Select.startup();
})
于 2013-03-19T07:59:56.827 に答える