私は<cfgrid>
1 つを持ってい<cfgridcolumn>
ます。values
その列の属性を 使用しています:
<cfform>
<cfgrid name="grdBrokers"
format="html"
bind ="cfc:CFC.Brokers.getGridData ( {cfgridpage},{cfgridpagesize},{cfgridsortcolumn},{cfgridsortdirection})"
onChange="cfc:CFC.Brokers.editGridData( {cfgridaction},{cfgridrow},{cfgridchanged})"
selectMode = "edit">
<cfgridcolumn name="name" header="Name" values="Item1,Item2" >
</cfgrid>
</cfform>
この属性により、ユーザーが列
values
のセルを編集したときにコンボボックスが表示されます。Name
そのコンボボックスのオプション リストを動的に (ページをリロードせずに) 変更する必要があります。多くの調査 (stackoverflow.com、raymondcamden.comなど) の後、これを行うための ColdFusion メソッドはないと結論付けたので、JavaScript を使用することにしました。コンボボックスの を見つけるid
ために、ページの HTML ソースを表示したところ、次のものが見つかりました。
<form name="CFForm_1" id="CFForm_1" action="/index2.cfm" method="post" onsubmit="return _CF_checkCFForm_1(this)">
<div id="cfgrid1344103796431" style="border: 1px solid #cccccc; overflow: hidden;"></div>
<select id='cf_grid_select0' class='ygrid-editor'>
<option value='Item1'>Item1</option>
<option value='Item2'>Item2</option>
</select>
<div>
<input type="hidden" name="__CFGRID__CFForm_1__grdBrokers" value="" /></div>
</form>
だから、私が欲しいIDはですcf_grid_select0
。ただし、この要素は では見つかりませんdocument.getElementById()
。また、FireBug を使用してページを検査しcf_grid_select0
ましたが、DOM タブに要素が見つかりません。生の HTML テキストとして含まれdocument.body.innerHTML
ていますが、DOM 内の独自の要素としてではありません。
見つけようとする私のコードは次のcf_grid_select0
とおりです。
<script type="text/javascript">
function find( ) {
var cbxFind = document.getElementById( 'cf_grid_select0' );
if ( cbxFind ) alert( "Found!" );
else alert( "Not found!" );
}
</script>
<form>
<input id="btnFind" type="button" onclick="find();" value="Find">
</form>
ボタンをクリックするFind
と、「見つかりませんでした!」というポップアップが表示されます。
私の質問は次のとおりです: JavaScript または jQuery を使用して、ブラウザが明らかに知っているが DOM に<select>
ないように見えるものをどのように見つけることができますか? 私ColdFusion.getGridObject()
が探しているものかもしれませんが、その方法を使用してコンボボックスを選択する方法も見つかりません。
ありがとうございました!
更新:
ColdFusion は ExtJS を使用して、ページの読み込み後に を に変換しているようで、DOM から を削除し<select>
ているようです。ExtJS を見つける方法を現在調査中です。ComboBox
<select>
ComboBox