我有一个带有表单的页面,我需要获取某个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>
有什么想法吗?
答案 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);