Dojo を使用して構成ダイアログを作成していますが、後でユーザー入力を問い合わせる必要があります。ダイアログには複数の行があり、それぞれが同じ形式とタグを持っています。これは、各行を作成するために使用する html です。
html = '<div class="cfgtxtrow"> <label>Label:</label>
<input id="mac" type="hidden" name="mac" value="'+mac+'"/>
<input id="label" type="text" maxlength="6" name="label" value="'+labl+'"/>
</div>';
その部分はすべて機能し、返されたときに Firebug でデータを確認できます。
値を解析して、最終的に xhr を使用してサーバーに送信する必要があります。そこで、dojo クエリを使用してノードリストを取得し、各ノードをたどって入力値を取得し、それらの連想配列を作成して送信できると考えました。これは、プログラムで値を検証するのとよく似ていると考えました。
各ノードで innerhtml を確認できます (dojo.query(".cfgtxtrow").forEach( function(node)) を使用) が、プログラムで (dojo を使用して) 各ノードの値を取得する方法がわかりません。ノードリストでdojo.byIdまたはクエリを使用して内部要素にアクセスできますが、エラーが返されます。
これは簡単だと思っていたので、私の概念はすべて間違っているのではないかと疑い始めています。
これが私が最終的に得たものです..
dojo.query(".cfgtxtrow input").forEach( function(node)
{
id = dojo.attr(node, "id" );
console.debug( node );
if( id == "mac" ) mac = dojo.attr( node, "value" ); // since mac comes first this is safe..
if( id == "label" )
{
labl = dojo.attr( node, "value" );
console.debug( mac );
console.debug( labl );
macLabels[mac] = labl;
}
});
console.debug(macLabels[mac]);
// send the data via the xhrPut call..
私はそれが単純であるべきだと思っていました.dojo.attr呼び出しは仕事をしているようです..
同じことを行うより良い方法はありますか?