将两种不同的形式合二为一

时间:2012-09-08 15:39:34

标签: javascript jquery

我一直在搞乱两种形式,并希望将它们结合起来。每个表单都有一个单独的JS。

我希望能够采用表格#1中的值并将它们放在表格#2的答案中。

有人可以帮忙吗?

表单#1

$(window).load(function(){
jQuery(function($) {

    var multiTags = $("#multi");

    function handler(e) {
        var jqEl = $(e.currentTarget);
        var tag = jqEl.parent();
        switch (jqEl.attr("data-action")) {
        case "add":
            tag.after(tag.clone().find("input").val("").end());
            break;
        case "delete":
            tag.remove();
            break;
        }
        return false;
    }

    function save(e) {
        var tags = multiTags.find("input.tag").map(function() {
            return $(this).val();
        }).get().join(',');
        alert(tags);
        return false;
    }

    multiTags.submit(save).find("a").live("click", handler);
});
});

</script>

表格#2

$(document).ready(function(){

    $('.submit').click(function(){
    var answers = [];
    $.each($('.field'), function() {
        answers.push($(this).val()); 
    });

    if(answers.length == 0) { 
        answers = "none"; 
    }   
    alert(answers);
    return false;                           
    }); 
});

1 个答案:

答案 0 :(得分:0)

我会将我的评论作为答案,并详细说明。

我制作了一个simple little fiddle,您可以将其作为跳跃点。基本上,它将获取页面上所有输入值并将它们分配给变量。从那里,您的脚本可以将该变量发送到您处理所有内容的邮件程序脚本...

var data = "";
$("input").each(function(index, element) {
    data += $(this).val() + ", ";
});
alert(data);​

该脚本会查找所有<input>代码,然后通过.val()从中获取值。在您的表单中,您可以点击$("input[type=submit]").click(function(){ ... });运行此操作,其中...将是上面的代码。显然,你不想提醒用户在框中输入的内容(毕竟他们输入了它),所以你然后将该变量传递给你的邮件脚本(我会谷歌如何做到这一点,因为您的邮件程序脚本可能是用PHP编写的,所以google就像pass jQuery variable onto PHP)。

小提琴:http://jsfiddle.net/charlescarver/4AfTR/2/


  

是否有办法对输入进行分组,以便数据仅使用输入框1,2,3(例如)。

是的,这一行......

$("input")

...查找页面上的所有<input>标记。如果您只希望<input>123将其值分配给变量,请为其提供一个类并将"input"更改为{ {1}}。例如,".classname"只会将$(".tag")个包含<input>类的框分配给变量(.tag)。