Chrome浏览器和数据绑定按钮的奇怪行为

时间:2009-11-13 13:35:44

标签: data-binding coldfusion google-chrome

我注意到谷歌的一些奇怪的浏览器特殊怪异 带有一些数据绑定按钮的Chrome,当您离开时 从页面然后使用浏览器返回按钮显示数据绑定 不同的数据。如果您再点击刷新,它将重置为正确的数据。 在Firefox或Explorer 7中不会发生这种情况。

我实际上已经将数据绑定bool按钮示例输入到CF. Cookbook http://cookbooks.adobe.com/post_Using_cfinput_buttons_and_data_binding_to_toggle_d-16390.html所以我正在使用的文件在那里,直接链接是http://cookbooks.adobe.com/index.cfm?event=getFile&fileId=6902 但现在我发现这个跨浏览器的怪癖,我觉得我应该采取 它除非当然你可以帮我弄清楚发生了什么 上!

任何线索都表示赞赏。

bool_buttons.cfm

<cfset url.messageID=28>
<CFSET application.dsn = "data">

<html>
<head>
    <title>Untitled</title>
</head>

<body>

<cfform>
<cfinput type="button" STYLE="width: 80px; height: 22px;" bind="cfc:messageProcess.togglebool('#application.dsn#', '#url.messageID#',{toggle1@click},'referral', 'Referral', 'Message')" name="toggle1" value="" bindonload="YES">
<cfinput type="button" STYLE="width: 80px; height: 22px;" bind="cfc:messageProcess.togglebool('#application.dsn#', '#url.messageID#',{toggle2@click},'viewed', 'Read', 'Unread')" name="toggle2" value="" bindonload="YES">
<cfinput type="button" STYLE="width: 80px; height: 22px;" bind="cfc:messageProcess.togglebool('#application.dsn#', '#url.messageID#',{toggle3@click},'actioned', 'Actioned', 'Pending')" name="toggle3" value="" bindonload="YES">
</cfform>
</body>
</html>

messageProcess.cfc

<cfcomponent>
    <cffunction access="remote" name="togglebool" output="true" returntype="any" displayname="Toggle boolean value in message record" hint="Toggles boolean value in message record">
        <cfargument required="true" name="dsn" type="string"/>
        <cfargument required="true" name="messageID" type="numeric"/>
        <cfargument required="true" name="buttonLabel" type="string"/>
        <cfargument required="true" name="switchName" type="string"/>
        <cfargument required="true" name="switchOnLabel" type="string"/>
        <cfargument required="true" name="switchOffLabel" type="string"/>
        <cfset var returnMessage = "" />
        <cfset var temp = "" />

        <cfquery datasource='#arguments.dsn#' name="getSwitchData">     
            SELECT #arguments.switchName#
            FROM messages
            WHERE messageID=<cfqueryparam value="#arguments.messageID#" cfsqltype="CF_SQL_INTEGER"/>
        </cfquery>

        <cfset temp="getswitchdata."&#switchName#>

        <cfif #Evaluate(temp)# is 1>
            <cfset returnMessage="#arguments.switchOnLabel#">
        <cfelse>
            <cfset returnMessage="#arguments.switchOffLabel#">
        </cfif>

            <cfif buttonLabel eq "">
                <cfreturn returnMessage>
            <cfelseif buttonLabel eq "#arguments.switchOffLabel#">
                <cfquery datasource='#arguments.dsn#'>      
                UPDATE messages
                SET #arguments.switchName#=1
                WHERE messageID=<cfqueryparam value="#arguments.messageID#" cfsqltype="CF_SQL_INTEGER"/>
                </cfquery>
                <cfreturn "#arguments.switchOnLabel#">
            <cfelseif buttonLabel eq "#arguments.switchOnLabel#">
                <cfquery datasource='#arguments.dsn#'>      
                UPDATE messages
                SET #arguments.switchName#=0
                WHERE messageID=<cfqueryparam value="#arguments.messageID#" cfsqltype="CF_SQL_INTEGER"/>
                </cfquery>
                <cfreturn "#arguments.switchOffLabel#">
            </cfif>
    </cffunction>
</cfcomponent>

1 个答案:

答案 0 :(得分:1)

这是谷歌Chrome浏览器的错误,我有一个类似的案例并开了一张票here