在Coldfusion中提交表单后,检查TextField更改

时间:2011-06-01 20:54:12

标签: coldfusion submit textfield onchange

我有代码显示数据库条目,并允许编辑/删除。

我试图在提交时找到某种方式来查看特定字段是否已更改,因此如果该字段的旧数据未被任何数据库条目引用,我可以将其删除。关于如何做到这一点的任何想法?

回复第一条评论/编辑:在这里提出这个问题的代码有点困难,但我会尝试抓住一些有用的代码片段。

<td>Upload File:</td>
<td>
    <input type="file" name="txtName" size="50" />
</td>
<cfif url.filesid neq "0">
<td>Or Use Server File:</td>
    <td>
    <select name="ddlFilesNames">
        <option value="" selected></option> 
            <cfoutput query="qfiles">
                <option 
                  value="#qfiles.name#" 
                  #iif(qfiles.name eq recEditFiles.fileName,DE("selected"),DE(""))#
                >#qfiles.name#</option>
            </cfoutput>                         
    </select>
    </td>
</cfif>

这是我需要检查的两个字段,如果它们发生了变化,当点击编辑按钮时,选择下拉列表显示当前服务器文件,但在编辑期间,他们可以将文件添加到文本字段(通过浏览上传新文件的选项)或者他们可以从下拉列表中选择另一个文件,然后点击提交更改的更新按钮。

当点击更新按钮时,我需要以某种方式检查字段是否完全改变。

我觉得其中一个主要问题是,一旦按下按钮,就会调用一个javascript方法,到目前为止我一直没有成功的是在javascript方法中使用coldfusion,每次我尝试这样做或反之亦然打破了这个计划。

2 个答案:

答案 0 :(得分:2)

比较表单上的字段是否已从原始字段更改的简单方法是将原始数据包含在隐藏表单字段中,然后在操作页面上比较表单字段及其隐藏对应字段的值,并查看它们是否'改变了。

表格:

<input type="text" name="myField" value="#q.myField#" />
<input type="hidden" name="myField_original" value="#q.myField#" />

动作:

<cfif form.myField NEQ form.myField_original>
  <cfset fieldHasChanged = true />
<cfelse>
  <cfset fieldHasChanged = false />
</cfif>

如果您与表单字段名称一致,则可以轻松地在操作页面上创建一个循环来进行这些比较。

答案 1 :(得分:0)

有些代码可以提供帮助。听起来你有一个<input type="file" ... />,你想知道用户是否从输入的DB记录中“删除”了该文件?

通常我会通过显示与记录关联的当前文件以及允许您删除该图像的“删除”按钮或图标来处理此问题。我还包括一个“替换”或“上传新”或“上传另一个”按钮,允许用户选择另一个文件来替换当前文件,或者将文件添加到没有文件的记录中。

如果你不做这样的事情,那么你无法知道用户是否只是想再次上传同一个文件(因为它已经存在,为什么会这样?)或者他们是否打算让您的系统删除该文件及其与数据库记录的关联。