如何使用jqueryvalidation远程validation来设置表单字段值并将其返回到表单操作页面?

我有一个使用jQuery插件validation的表单:Validation,v1.9.0。 validation还会对服务器端脚本(Coldfusion)执行远程调用,以检查用户名,电子邮件地址等。

我的问题是:

在远程validation过程中,有时会通过服务器端脚本定义和设置新的表单字段,这些字段需要返回到调用表单,以便可以将它们传递到表单的操作页面。

正如您在下面的代码片段中所注意到的那样,我必须通过流程的每个步骤(即创建结果结构,在成功处理程序中选择那些等等)来处理这些表单字段值,这既繁琐又浪费,因为forms可能在未来发生变化而容易出错。

有没有一种我可以使用的方法,它只是允许我“全局”设置这些表单字段值,一旦表单validation,我的调用表单/操作页面可以接收?

JQUERY VALIDATION SNIPPET:

validator = $('#cartDownload_form').validate({ submitHandler: function(form) { // make submit button disabled $('#submit_button').attr('disabled', 'disabled'); // show modal dialog about submittal process.. var processing_dialog = ShowDialog("Processing Order...", "

Please wait while we process your order...

", false); // prepare Options Object var options = { url: "/products/val_cartDownload_remote.cfm", dataType: 'json', type: "POST", success: function(data) { if(data.ERRORMESSAGELIST.length == 0) { // no errors... // set return form field values needed for action page $('#verified').val(data.VERIFIED); $('#dlurl').val(data.DLURL); $('#dllocation').val(data.DLLOCATION); $('#itemname').val(data.ITEMNAME); $('#itemtease').val(data.ITEMTEASE); $('#itemimage').val(data.ITEMIMAGE); $('#itemimage_border').val(data.ITEMIMAGE_BORDER); $('#itemimage_alt').val(data.ITEMIMAGE_ALT); $('#itemimage_title').val(data.ITEMIMAGE_TITLE); $('#itemthumb').val(data.ITEMTHUMB); $('#itemthumb_border').val(data.ITEMTHUMB_BORDER); $('#itemthumb_alt').val(data.ITEMTHUMB_ALT); $('#itemthumb_title').val(data.ITEMTHUMB_TITLE); $('#itempubnotes').val(data.ITEMPUBNOTES); $('#itemurl_size').val(data.ITEMURL_SIZE); $('#first_name').val(data.FIRST_NAME); // submit the form $('#cartDownload_form')[0].submit(); return true; } else { // an error occurred... }; $(form).ajaxSubmit(options); return false; }

远程validationSNIPPET(这些是新的表单字段和值不在调用forms):

   #serializeJSON(result_struct)# 

所以我想要摆脱的是必须在几个地方手动设置所有这些表单字段值,只是为了让它们回到我的调用表单/操作页面。

我可能犯了一个简单的菜鸟错误,我似乎无法找到答案。

谢谢。

为了简化你的jQuery:

 if(data.ERRORMESSAGELIST.length == 0) { // no errors... // set return form field values needed for action page for (field in data) { $('#' + field.toLowerCase()).val(data[field]); } // submit the form $('#cartDownload_form')[0].submit(); 

你的cf代码:

    #serializeJSON(result_struct)#