If statement 是否可以使用条件cfscript if语句禁用cfinput type=文本字段?

If statement 是否可以使用条件cfscript if语句禁用cfinput type=文本字段?,if-statement,coldfusion,cfml,cfform,cfinput,If Statement,Coldfusion,Cfml,Cfform,Cfinput,我有一个带有动态填充文本字段的cfform。这些都在已登录的门户中。如果用户到达表单时数据库为空,我希望启用字段,以便他们填写信息并提交表单。但是,如果他们以前已经这样做了,并且数据库已填充,我希望这些字段被禁用 基本上,我想要: <cfscript> if (isDefined("query.column")) { disable the cfinput fields } 这可能吗? 如果没有,你对如何实现这一点有什么想法吗?以下是我在评论中的意思。我不相信有任何理由在cfscr

我有一个带有动态填充文本字段的cfform。这些都在已登录的门户中。如果用户到达表单时数据库为空,我希望启用字段,以便他们填写信息并提交表单。但是,如果他们以前已经这样做了,并且数据库已填充,我希望这些字段被禁用

基本上,我想要:

<cfscript>
if (isDefined("query.column"))
{
disable the cfinput fields
}
这可能吗?
如果没有,你对如何实现这一点有什么想法吗?

以下是我在评论中的意思。我不相信有任何理由在cfscript标记中执行您想要的操作。您已经在为表单使用标记语法,因此在构建表单时只需检查您的条件

例如,现在您有如下内容:

<html>
    <head>
        <!-- some code here -->
    </head>
    <body>
        <!-- some code here -->

        <cfform ... >
            <cfinput type="text" ... >
        </cfform>

        <!-- some code here -->
    </body>
</html>
<html>
    <head>
        <!-- some code here -->
    </head>
    <body>
        <!-- some code here -->

        <cfform ... >
            <cfif isDefined("query.column")>
                <cfinput type="text" disabled="disabled" ... >
            <cfelse>
                <cfinput type="text" enabled="enabled" ... >
            </cfif>
        </cfform>

        <!-- some code here -->
    </body>
</html>
我的建议是这样做:

<html>
    <head>
        <!-- some code here -->
    </head>
    <body>
        <!-- some code here -->

        <cfform ... >
            <cfinput type="text" ... >
        </cfform>

        <!-- some code here -->
    </body>
</html>
<html>
    <head>
        <!-- some code here -->
    </head>
    <body>
        <!-- some code here -->

        <cfform ... >
            <cfif isDefined("query.column")>
                <cfinput type="text" disabled="disabled" ... >
            <cfelse>
                <cfinput type="text" enabled="enabled" ... >
            </cfif>
        </cfform>

        <!-- some code here -->
    </body>
</html>

在为任何其他字段或按钮等构建表单时,在标记中使用类似的条件。

我解决了这个问题。我确实需要检查一个值。我将cfif重新编写为

<cfif #query.column# eq "NULL" OR #query.column# eq "">
    <cfinput type="text">
<cfelse>
    <cfinput type="text" value="#query.column#" disabled="disabled">
</cfif>

谢谢你们的帮助

为什么会有cfscript限制?很明显,您使用的是标记cfinput,所以在构建表单时只需使用标记并进行区分。我不确定您的确切意思。我愿意接受任何实现这一目标的想法。这是一个他们将首先填写的表单,然后单击“保存”,并在将来有一个编辑选项。我希望字段为空时启用,从数据库填充时禁用,如果需要更新,还可以使用编辑按钮启用。如果填充或不填充,该列不存在吗?您不应该检查列是否有值吗?是的!那一定是我的问题!如何检查值?我在页面顶部有一个查询,从表中选择*this=var,其中this=var易受sql注入攻击。一定要使用cfqueryparam。这很有道理!然而,当我这样做时,无论出于何种原因,无论是否定义了它,表单只希望显示第一个cfinput标记。因此,无论哪种方式,该字段都是禁用的,为空或不为空。有什么想法吗/当然,您必须检查数据库列中实际存在的值。我只是按照你在最初的问题中所说的去做。很高兴它能为您工作。如果使用了原始输入,则使用文本禁用内联将其禁用,而不进行赋值或任何操作:。这不适用于cfinput。我一直在尝试分配enabled/disabletrue/false,以及上面的disabled=disabled和enabled=enabled。这个表示法正确吗,似乎很奇怪?对于cfinput,属性行为取决于表单的格式,如下所示:HTML格式表单:ColdFusion将此属性直接传递给HTML。要禁用输入,请指定不带值的禁用HTML格式或带值的禁用XHTML兼容。若要启用输入,请忽略此属性。Flash格式表单:要禁用输入,请指定disabled而不带属性,或disabled=yes或任何ColdFusion正布尔值,如true。若要启用输入,请忽略该属性或指定disabled=no或任何ColdFusion负布尔值,例如false。如果您没有使用任何其他功能,最好使用标准html。CF包装有点笨重,给html源代码添加了很多不必要的混乱。此外,结果集中的1个NULL值在CF中被视为空字符串。除非您测试的是文本字符NULL,否则您只需要后面的检查。2不需要CFIF中的标志。