我有一个带有bind属性的cfselect,我想把它转换成普通的选择,它还附带了onchange,我做了什么才能返回它的一般jquery或javascript代码?
这是我的密码
<cfselect
name="StatusID"
id="StatusID"
bind="cfc:com.getStatus()"
bindonload="True"
value="StatusID"
display="StatusDescription"
selected="#Val(qry.StatusID)#"
data-validation="required"
data-validation-error-msg="Status selection is required."
onChange="CheckActive()" />对于更简单的级别,我可以执行<select,对于查询,我只需要在上面执行一个loop,但是这又如何呢?
发布于 2022-06-24 14:38:22
cfselect上的bind参数将在cfc中调用该函数,该函数将返回某些结果集(通常为json或queryobject)。该结果集将用于生成选项。然后,"value“属性指定cfc结果集中的哪一列将在结果”选项“元素的"value”参数中使用。同样,显示参数对应于选项开始和结束标记之间的内容。所选的激励将决定选择哪个选项。其他参数传递到正常选择。
如果您想要在服务器端完全生成香草选择,您可以这样做:
<cfscript>
//You can do something like this to get your data from the CFC
//myCom=CreateObject("component","com");
//statuses=myCom.getStatus();
//Since I don't have an example of what your cfc is returning, I'll assume it's a query result set like this
statuses = queryNew("StatusID,StatusDescription","Integer,Varchar",
[
{StatusID=1,StatusDescription="StatusOne"},
{StatusID=2,StatusDescription="StatusTwo"},
{StatusID=3,StatusDescription="StatusThree"}
]);
//also hardcoding this value because I don't have your qry result set
qry = {statusid=2};
</cfscript>
<cfoutput>
<select
name="StatusID"
id="StatusID"
data-validation="required"
data-validation-error-msg="Status selection is required."
onChange="CheckActive()">
<cfloop query="statuses">
<option value="#statuses.StatusID#" <cfif statuses.statusid eq qry.statusid>selected</cfif>>#statuses.StatusDescription#</option>
</cfloop>
</select>
</cfoutput>如果出于某种原因,您实际上需要通过AJAX在客户端生成select,那么需要用js/jquery编写一些函数来执行对cfc的ajax调用,而不是在coldfusions cfselect中使用内置的绑定表达式系统。(例如,关于如何做到这一点,请参阅:Calling a CFC function in AJAX/JQuery和Populating selectlist from AJAX call to CFC)
还有一些其他库可以使这更容易,比如HTMX:https://htmx.org/examples/value-select/。
https://stackoverflow.com/questions/72744878
复制相似问题