0

我正在尝试在调用 CFC 的表单上创建一个模式,以根据我在 Internet 上找到的示例和一些研究的组合来更新数据并返回结果。我已经或多或少地工作了,但是在定义我的参数时遇到了一个奇怪的问题,其中我传递的值作为我传递的值的逗号分隔字符串副本进入我的 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'); }
            });
        }

冷融合:

<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>

当我传入我的文本字符串参数并转储结构时,我的全名和电子邮件参数是重复值,例如“全名:测试,测试”而不是“全名:测试”。我可以通过不定义 submitHandler 函数中的数据值或不定义 CFC 中的参数来阻止这一点,但据我了解,这些解决方案都不应该真正起作用,所以我不太明白发生了什么。

4

1 回答 1

2

由于您正在提交表单,因此无需将data属性传递给ajaxSubmit()调用。

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

你可以删除data并尝试。

前任:

jQuery(form).ajaxSubmit({
    target: '##client-script-return-data',
    success: function() { $('##my-modal-form').dialog('close'); successEvents('##client-script-return-msg'); }
});
于 2012-10-09T13:11:00.257 回答