首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将cfselect更改为普通选择

将cfselect更改为普通选择
EN

Stack Overflow用户
提问于 2022-06-24 13:33:34
回答 1查看 74关注 0票数 -2

我有一个带有bind属性的cfselect,我想把它转换成普通的选择,它还附带了onchange,我做了什么才能返回它的一般jquery或javascript代码?

这是我的密码

代码语言: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,但是这又如何呢?

EN

回答 1

Stack Overflow用户

发布于 2022-06-24 14:38:22

cfselect上的bind参数将在cfc中调用该函数,该函数将返回某些结果集(通常为json或queryobject)。该结果集将用于生成选项。然后,"value“属性指定cfc结果集中的哪一列将在结果”选项“元素的"value”参数中使用。同样,显示参数对应于选项开始和结束标记之间的内容。所选的激励将决定选择哪个选项。其他参数传递到正常选择。

如果您想要在服务器端完全生成香草选择,您可以这样做:

代码语言:javascript
复制
<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/JQueryPopulating selectlist from AJAX call to CFC)

还有一些其他库可以使这更容易,比如HTMX:https://htmx.org/examples/value-select/

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72744878

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档