当我正常运行CFSELECT时,它可以完美运行,但是当我在javascript中添加时,它会出错。
正常的一个 它有效。
<tr id='selectionDropdown'>
<td >Non-Keyword Traffic:</td>
<td>
<cfif Session.ID eq Session.userID>
<cfselect name="nonkeyword" multiple="true" query="GetCodes" display="Code" value="Code" selected=#Form.nonkeyword# >
</cfselect>
</cfif>
</td>
</tr>
它不起作用
//The non keyword and all are checked
<td id='selectionDropdown'></td>
<cfoutput>
function ShowDropdown(){
if($('##nonKeyword').is(':checked') && !$('##all').is(':checked'))
{
$( "##selectionDropdown" ).empty();
$( "##selectionDropdown" ).append( "<td>Non-Keyword Traffic:</td><td><cfif Session.ID eq Session.userID><cfselect name='nonkeyword' multiple='true' query='GetCodes' display='Code' value='Code' selected='#Form.nonkeyword#' ></cfselect></cfif></td>" );
}
}
</cfoutput>
在浏览器中,我收到错误。
<td id='selectionDropdown'>Context validation error for tag cfselect.<td>
因为我得到了一些评论和答案。我正在编辑我之前尝试过的不是使用 CFSELECT。
当它可以执行这个时,为什么不使用CFSELECT
if($('##nonKeyword').is(':checked') && !$('##all').is(':checked'))
{
$( "##selectionDropdown" ).empty();
$( "##selectionDropdown" ).append( "<td>Non-Keyword Traffic:</td><td><cfif Session.ID eq Session.userID><select name='nonkeyword' multiple='true' selected='#Form.nonkeyword#' ><cfloop query='GetCodes'><option value='#code#'>#code#</cfloop></select></cfif></td>" );
}
你不能把CFML写到屏幕上,希望它能神奇地执行!这是你的问题。
本文"CFML请求/响应过程"对此进行了彻底的解释,但是 - 最重要的是 - CFML需要在执行之前进行编译,这需要由CFML服务器完成,而不是客户端浏览器。