将表单从jQuery模式提交到ColdFusion操作页面

时间:2014-08-11 17:00:02

标签: jquery coldfusion

我试图在我的ColdFusion应用程序中将一个非常简单的表单提交到一个操作页面,以更新一些数据库记录。

当我提交表格时,Firebug告诉我

  

500(元素NOTETEXT在FORM中未定义。)

这是我的JavaScript

 <!---Javascript that submits the link notes changes --->                                               
        <script>
           $(function(){
            $("#noteForm").submit(function(){
               // prevent native form submission here
                    $.ajax({
                        type: "POST",
                        data: $('#noteForm').serialize(),
                        dataType: 'json',
                        url: "actionpages/link_notes_action.cfm?id=2",
                        success: function(responseSubmit) {
                        alert("Success");
                        }

                    });
                    return false;           
                });
            });
            </script>

这是我的表格

 <form id="noteForm">

   <textarea id="noteText" name="noteText" cols="45" rows="10">#notes#</textarea><br />
   <input name="submit" id="submitForm" type="submit" value="Update">
   <input type="hidden" name="hidden" value="#get_dashboard_links.ID#">

</form>

这是我的行动页面:

<cfquery name="update"   datasource="#datasource#">
  update dashboard_links
  set notes = '#form.noteText#'
  where ID = #form.hidden#
</cfquery>

enter image description here

2 个答案:

答案 0 :(得分:2)

ColdFusion键取决于表单对象的名称,而不是ID。

将您的textarea更改为

<cftextarea id="noteText" name="noteText" cols="45" rows="10">

OR

如此更改您的操作页面:

set notes = '#form.notes#'

(顺便说一下,我希望您实际上没有使用未经过滤的输入更新您的数据库。您正在使用cfqueryparam,对吧?)

答案 1 :(得分:1)

在提交表单时,请查看开发人员工具(在Chrome中)或FireBug(在Firefox中),我打赌您实际上并没有将任何数据传递到您的“操作页面”。当您在表单上调用serialize()时,实际上并没有将其传递给页面。

尝试在$.ajax()电话中添加以下内容:

data: JSON.stringify( data ),

另外,如果您要返回JSON,请使用此

dataType: 'json',

这将告诉jQuery自动将结果作为JSON处理。