0

我有一个带有表单的页面,我需要在某个 div 中获取 A 链接的所有 ID 属性,并在提交之前将这些属性附加到隐藏表单字段中的表单。我该怎么做?

IE

<form action="/myaction" id="myForm">
<div id="recipients">
<a id="1">recipient one</a>
<a id="2">recipient two</a>
<a id="3">recipient three</a>
</div>
<a href="javascript:void(0)" id="sendMail">Send</a>
</form>

<script>
//Capture form before sending
$("#sendMail").click( function() {
//Do something here to loop over the a tags in the recipients div, 
//and add as a list to a new hidden form field        
$('#myForm').trigger('submit');
});
</script>

有任何想法吗?

4

3 回答 3

2

这些方面的东西应该让你开始:

$("#sendMail").click(function() {
    var recipients = "";
    $("#recipients a").each(function() {
        recpients += this.id + ",";
    });
    $("#someHiddenField").val(recipients);
    $("#myForm").trigger("submit");
});

您可以使用each迭代a元素集,构建包含id值的字符串,并使用val将隐藏输入元素的值设置为该字符串。在上面的示例中,您将得到一个逗号分隔的字符串,结尾带有逗号。我不知道你在寻找什么,所以你可能想改变它。

于 2011-11-10T11:11:58.793 回答
1

您可以使用append函数来创建新的隐藏字段。

所以要循环a收件人中的所有标签并附加一个新的隐藏字段:

$("#recipients a").each(function() {
    $("#myform").append('<input type="hidden" name="'+this.id+'" value="'+$(this).text()+'" />')
});

注意:你没有说你想要隐藏字段的名称和值是什么,所以我猜想使用this.id名称和$(this).text()作为值。

于 2011-11-10T11:12:39.263 回答
0
try this

var Anchors = $("body").find("a")
var str = "";
    alert(Anchors.length);

    $(Anchors).each(function(){
        if(str !== ""){
            str+=",";   
        }

        str+=$(this).attr("id");
    })

 $("sometextfieldid").val(str);
于 2011-11-10T11:28:39.563 回答