我有<cfgrid>
一个<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 检查了该页面,但在 DOM 选项卡上找不到该cf_grid_select0
元素。它document.body.innerHTML
作为原始 HTML 文本包含在其中,但在 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,我怎样才能找到<select>
我的浏览器显然知道但似乎不在DOM中的一个?我怀疑ColdFusion.getGridObject()
可能是我正在寻找的东西,但我也找不到使用该方法选择组合框的方法。
谢谢!
更新:
ColdFusion 似乎在页面加载后使用 ExtJS 将 转换<select>
为 a ComboBox
,显然<select>
从 DOM 中删除了 。我现在正在研究如何定位 ExtJS ComboBox
。