jQuery在表单提交之前抓取id

时间:2011-11-10 11:07:04

标签: jquery forms jquery-selectors onsubmit

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

<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>

有什么想法吗?

3 个答案:

答案 0 :(得分:2)

这些方面应该让你开始:

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

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

答案 1 :(得分:1)

您可以使用append功能创建新的隐藏字段。

因此,要循环接收者中的所有a标记,并附加一个新的隐藏字段:

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

注意:您没有说出您想要的隐藏字段的名称和值,因此我猜到了使用this.id作为名称和$(this).text()为了价值。

答案 2 :(得分: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);