jQuery для создания Mailto HREF с несколькими получателями

Я не ожидаю, что кто-то напишет это для меня, но, по крайней мере, направьте меня в правильном направлении, поскольку я даже не могу найти хорошую поисковую фразу, чтобы найти похожие решения.

У меня есть много ссылок mailto на веб-странице, и все они классифицированы по классам. Мне нужно предоставить пользователю возможность выбирать несколько категорий с помощью флажков и добавлять все совпадающие адреса электронной почты в одну основную ссылку mailto. Что-то вроде этого:

  <p>To send a message to one or more groups, make your selection and click "Send Message."</p>

<input type="checkbox" name="mailing-groups" value="nursing" class="mailing-groups" /> Nursing<br />
<input type="checkbox" name="mailing-groups" value="facilities" class="mailing-groups" /> Facilities<br />
<input type="checkbox" name="mailing-groups" value="board-of-directors" class="mailing-groups" /> Board of Directors

<a id="staff-mailer" href="" class="btn"><em class="icon-ok"></em> Send Message</a>

<a class="nursing" href="mailto:[email protected]">[email protected]</a>
<a class="facilities" href="mailto:[email protected]">[email protected]</a>
<a class="board-of-directors" href="mailto:[email protected]">[email protected]</a>
<a class="nursing" href="mailto:[email protected]">[email protected]</a>

<script language="javascript">

    $('.mailing-groups').click(function(){

    var addresses = COMMA-SEPARATED_LIST_OF_ALL_EMAIL_ADDRESSES_WHOSE_CLASSES_MATCH_THE_CHECKBOX_SELECTIONS

    $("#staff-mailer").attr("href", "mailto:" + addresses)

    });

</script>

person Phil Lockwood    schedule 11.02.2014    source источник


Ответы (1)


Попробуйте что-то вроде:

// initialize empty array on each click of a checkbox 
var addressArray = [];
// find each checkbox that is checked
$("input[name='mailing-groups']:checked").each(function (index, el) {
   var className = $(el).val();
   // use the value of each checked checkbox to find the mailto elements with that class
   $("."+className).each(function (mailindex, mailelement) {
         addressArray.push($(mailelement).text());
   });
});
// create a comma separated string from the array
var addresses = addressArray.join(",");
person mccannf    schedule 11.02.2014