把两种不同的形式合为一

Combining two separate forms into one

本文关键字:两种      更新时间:2023-09-26

我一直在摆弄两种形式,希望将它们结合起来。每个表单都有一个单独的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;                           
    }); 
});

我将把我的评论作为一个答案,并进一步阐述。

我做了一个简单的小小提琴,你可以用它作为起点。基本上,它将获取页面上输入的所有值,并将它们分配给一个变量。从那里,您的脚本可以将该变量发送到处理所有内容的mailer脚本。。。

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

脚本查找所有<input>标记,然后通过.val()从中获取值。在您的表单中,您可以在单击$("input[type=submit]").click(function(){ ... });时运行它,其中...将是上面的代码。显然,你不想提醒用户在框中键入了什么(毕竟是他们键入的),所以你会把这个变量传递给你的邮件脚本(我会在谷歌上搜索如何做到这一点,因为你的邮件程序脚本可能是用PHP写的,所以在谷歌上搜pass jQuery variable onto PHP之类的东西)。

Fiddle:http://jsfiddle.net/charlescarver/4AfTR/2/


有没有一种方法可以对输入进行分组,使数据只使用输入框1、2、3(例如)。

是的,这行。。。

$("input")

查找页面上的所有<input>标记。如果只希望<input>123将其值分配给变量,则为它们指定一个类,并将"input"更改为".classname"。示例)$(".tag")将仅将类别为.tag<input>框分配给变量(<input class="tag />)。