javascript - 动态单击复选框并在列表中添加电子邮件地址并使用 JavaScript 删除重复的电子邮件地址

标签 javascript jquery jsp checkbox jsp-tags

文件名:contact.jsp

${contactList} 拥有多个联系人。

  1. 如果选中复选框,则会添加 emailList 类,如果未选中复选框,则会从列表中删除电子邮件地址。
  2. 从列表中删除重复的电子邮件地址。
  3. 例如:kumar@gmail.com、sam@yahoo.com - 在电子邮件地址中间放置逗号
  4. 最后将所有电子邮件地址分配给父页面 ID $("#toAddress")
<c:forEach items="${contactList}" var="contact">             
    <cong:td>
        <input type="checkbox" name="selectContact"  id="selectContact" class="emailList" onclick="addEmailinList(${contact.email});"/>
    </cong:td>
    <cong:td>${contact.accountNo}</cong:td>
    <cong:td>${contact.firstName}&nbsp;&nbsp;${contact.lastName}</cong:td>
    <cong:td>${contact.position}</cong:td>
    <cong:td>${contact.email}</cong:td>
    <cong:td>${contact.phone}</cong:td>
    <cong:td>${contact.fax}</cong:td>
</c:forEach>

       <cong:td>
         <input type="button" value="Submit" class="button-style1"  style="width:50px;" onclick="definepls();"/>
       </cong:td>

文件名:contact.js

function addEmailinList(ele) {
    var mailList = [];
    $(".emailList:checked").each(function () {
        alert(ele);            //  here i got email address.
        mailList.push(ele);
    });
    parent.$("#toAddress").val($(".emailList").val());
}

最佳答案

要将所有已检查的电子邮件填充到 $('#toAddress'),您可以执行以下操作:

  1. 删除onclick="addEmailinList(${contact.email});"并添加data-email="${contact.email}"以供引用所有复选框输入字段上的电子邮件
  2. 在所有 $('input.emailList') 上设置 jQuery change 事件监听器

查看文件:

<c:forEach items="${contactList}" var="contact">
    <cong:td>
        <input type="checkbox" name="selectContact" id="selectContact" class="emailList" data-email="${contact.email}">
    </cong:td>
    <cong:td>${contact.accountNo}</cong:td>
    <cong:td>${contact.firstName}&nbsp;&nbsp;${contact.lastName}</cong:td>
    <cong:td>${contact.position}</cong:td>
    <cong:td>${contact.email}</cong:td>
    <cong:td>${contact.phone}</cong:td>
    <cong:td>${contact.fax}</cong:td>
</c:forEach>

<cong:td>
    <input type="button" value="Submit" class="button-style1" style="width:50px;" onclick="definepls()" />
</cong:td>

JavaScript 文件:

$('input.emailList').on('change', function () {
    var $this = $(this),
        $toAddress = $('#toAddress'),
        email = $this.data('email'),
        mailList = ($toAddress.text() !== '') ? $toAddress.text().split(', ') : [];

    if ($this.is(':checked')) {
        // Add email to the list
        mailList.push(email);
    } else {
        // Remove email from the list
        for (var i = mailList.length - 1; i >= 0; i--) {
            if (mailList[i] === email) {
                mailList.splice(i, 1);
                break;
            }
        }
    }

    // Populate #toAddress 
    $toAddress.html(mailList.join(', '));
});

关于javascript - 动态单击复选框并在列表中添加电子邮件地址并使用 JavaScript 删除重复的电子邮件地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39845826/

相关文章:

javascript - 第一个 li 项的 Jquery 点击事件

javascript - 如何将 AG 网格控件的标题中的文本居中?

javascript - 在不丢失内存的情况下为每个实例创建和共享方法

javascript - 检查所有请求是否已完成

javascript - 确定一个 UL 是否有 1 个或多个 LI

javascript - imacros 单击新的 google plus 共享按钮

jquery - 如何创建带有视差背景视频的网页

java - 自定义jsp标签未调用

jsp - 如何注入(inject)Struts <s :property/> tag into another tag的值

java - 在 JSP 中保存单选按钮