通过循环表单字段来构建变量的值

时间:2009-10-20 05:40:45

标签: javascript jquery

在AJAX / JS方面仍然有点绿色,并且不知道我正在寻找的具体方法/功能来实现这一任务。

如果以前一直询问过类似的问题,请与我同行,我希望这里有足够的信息来帮助我找到正确的答案。

概要

我目前正在为特定页面构建表单,用户可以在其中提供有关amny页面内容的建议。

表单显示在模式对话框中,允许用户提出建议而不会从他们所在的页面中删除。

当然,我正在设计重用代码 - 一次编写,多次使用 - 在网站的任何地方提供类似的表单显示和提交方法,而无需重新编写代码。

环境

该站点托管在IIS6服务器上,页面在ASP中,并使用trusty, classic ASP FormMail script from BrainJar通过电子邮件发送表单数据。

问题

模态对话框可以处理,并使用this example from Nettuts+从模态中执行提交。

Nettuts +脚本的构建方式使得您需要定义构成表单的所有单个字段以传递给您的formmail脚本。

因此,每次你需要使用它时,你需要更新var dataString的组合方式,这取决于你有多少caffine或痛苦的用户敲门让你打开对于可能需要数小时才能诊断和纠正的简单错误。

然后将每个字段编译成一个名为dataString的变量:

var dataString = 'name='+ name + '&email=' + email + '&phone=' + phone;

Ajax随后启动并将数据提交给脚本,并根据结果在定义的div中出现成功消息:

$.ajax({
  type: "POST",
  url: "/_global/assets/scripts/formmail/formmail.asp",
  data: dataString,
  success: function() {
    $('#contact_form').html("<div id='message'></div>");
    $('#message').html("<h2>Suggestion received</h2>")
    .append("<p>Thanks, your suggestion has been received and
    will be actioned as soon as possible.</p>")
    .hide()
    .fadeIn(1500, function() {
      $('#message').append("<img id='checkmark' src='images/check.png' />");
    });
  }
....

期望的结果

使这段代码全局可重用,并使用循环使用表单中的所有字段名称和值填充var dataString

所以,我的同胞溢出者 - 请指出这个n00b正确的方向,并帮助我找到我寻求的答案。我们非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

呃 - 您是否希望使用$('#contact_form').serialize()data:之后可以附加data: $('#contact_form').serialize(),因此结果为{{1}},或者我的问题措辞错误了?