在Ajax调用中为参数创建重复值

时间:2012-10-09 13:08:15

标签: jquery jquery-ui coldfusion

我正在尝试在表单上创建一个模式,该表单调用CFC来更新数据并根据我在互联网和一些研究中找到的示例组合返回结果。我已经或多或少地工作了,但是我在定义我的参数时遇到了一个奇怪的问题,我的传递值正在以我传递的值的逗号分隔的字符串副本的形式输入我的CFC函数。我的代码看起来像这样:

使用Javascript:

var amodal = $("##my-modal-form").dialog({
        bgiframe: true,
        modal: true,
        buttons: {
          'Update Data': function() { $("##modal-form-test").submit(); },
          Cancel: function() { $(this).dialog('close'); aform.resetForm(); }
       }
    });

submitHandler: function(form) {
            jQuery(form).ajaxSubmit({
                target: '##client-script-return-data',
                data: {
                    fullname: $('##fullname').val(),
                    email: $('##email').val() 
                },
                success: function() { $('##my-modal-form').dialog('close'); successEvents('##client-script-return-msg'); }
            });
        }

ColdFusion的:

<cffunction name="userModalTest" access="remote" output="false" returnformat="json">
    <cfargument name="fullname" type="any" required="true" default="" hint="unknown arg type" />
    <cfargument name="email" type="any" required="true" default="" hint="" />

    <cfset var testVar = '' />

    <cfset testVar = serializeJSON(arguments) />

    <cfreturn testVar />
</cffunction>

当我传入我的文本字符串参数并转储结构时,我的全名和电子邮件参数是重复的值,例如“fullname:test,test”而不是“fullname:test”。我可以通过不在submitHandler函数中定义数据值或不在CFC中定义参数来实现此停止,但据我所知,这些解决方案都不应该实际工作,所以我不太明白发生了什么。

1 个答案:

答案 0 :(得分:2)

由于您要提交表单,因此无需将data属性传递给ajaxSubmit()来电。

我认为这会导致ajax提交提交一组名为fullnameemail的输入参数。该数组将作为服务器中的逗号分隔字符串提交。

您可以删除data并尝试。

例如:

jQuery(form).ajaxSubmit({
    target: '##client-script-return-data',
    success: function() { $('##my-modal-form').dialog('close'); successEvents('##client-script-return-msg'); }
});