电话号码和邮箱 编辑和取消 问题

直接点击取消时,电话号码和邮箱没有变化。点击编辑后,变为输入框,如果不想编辑了,再点击取消,内容恢复原样。

//编辑
function edit(){
     //phone,email 变量声明时没有使用var,是全局变量,因为下面的cancel()函数要用到
     phone = $("#phone").text();
     email = $("#email").text();
    $("#phone").html("<input type='text' name='newPhone' id='newPhone' class='form-control' placeholder='请输入电话号码'>");
     $("#email").html("<input type='text' name='newEmail' id='newEmail' class='form-control' placeholder='请输入邮箱'>");               
}
//取消
function cancel(){
   //如果直接点击取消,则内容不变,typeof phone=="object"
   //如果点击编辑后在再点击取消,typeof phone=="string"  , 既 typeof phone != "object"
    var cancelPhone = $("#phone").text();
    var cancelEmail = $("#email").text();
    if(typeof phone =="object"){
      $("#phone").html(cancelPhone);
      $("#email").html(cancelEmail);
    }else{
      $("#phone").html(phone);
      $("#email").html(email);
    }

}
<tr>
  <td>电话</td>
  <td><div id="phone">${user.phone }</div></td>     
</tr>
<tr>
  <td>邮箱</td>
  <td><div id="email">${user.email }</div></td>     
</tr>
<tr>
  <td style="text-align: center;"><button type="button" onclick="cancel()" class="layui-btn layui-btn-normal"><font size="2">取消</font></button></td>
</tr>

 

<li class="li"> 
   <button onclick="edit()" class="layui-btn layui-btn-normal"><font size="2">编辑</font></button>
</li>

 

1.直接点击取消,内容没有变化

2.点击编辑,电话和邮箱变为输入框。

3.忽然不想编辑了,点击取消后,内容恢复原样。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以帮你完成这个需求。首先,我们需要添加一个搜索框,可以通过输入姓名或电话来查找联系人。我会给你一个基本的HTML和JavaScript代码,你可以根据你的需求进行修改和完善。 HTML代码: ``` <h1>通讯录</h1> <button class="add-btn">添加联系人</button> <input type="text" id="search-input" placeholder="搜索姓名或电话"> <table> <thead> <tr> <th>姓名</th> <th>电话</th> <th>邮箱</th> <th>操作</th> </tr> </thead> <tbody id="contact-list"> <!-- 数据渲染 --> </tbody> </table> <!-- 分页按钮 --> <div id="page-buttons"></div> <!-- 弹出层,用于添加或编辑联系人 --> <div id="modal" class="modal" style="display: none;"> <div class="modal-content"> <span class="close">×</span> <form> <div class="form-group"> <label for="name">姓名</label> <input type="text" id="name" name="name" required> </div> <div class="form-group"> <label for="phone">电话</label> <input type="text" id="phone" name="phone" required> </div> <div class="form-group"> <label for="email">邮箱</label> <input type="text" id="email" name="email" required> </div> <button id="save-btn">保存</button> <button id="cancel-btn">取消</button> </form> </div> </div> ``` JavaScript代码: ``` // 定义一个数组,用于存放联系人数据 var contacts = [ { name: '张三', phone: '13800138000', email: 'zhangsan@example.com' }, { name: '李四', phone: '13900139000', email: 'lisi@example.com' }, { name: '王五', phone: '13600136000', email: 'wangwu@example.com' }, { name: '赵六', phone: '13700137000', email: 'zhaoliu@example.com' }, { name: '钱七', phone: '13500135000', email: 'qianqi@example.com' } ]; // 定义一个变量,用于存放当前页码 var currentPage = 1; // 定义一个函数,用于渲染联系人列表 function renderContacts() { // 获取搜索框中的输入内容 var searchText = document.getElementById('search-input').value; // 如果搜索框中有输入内容,则只渲染符合条件的联系人数据 if (searchText) { var filteredContacts = contacts.filter(function(contact) { return contact.name.indexOf(searchText) !== -1 || contact.phone.indexOf(searchText) !== -1; }); renderContactList(filteredContacts); } else { // 否则,渲染所有联系人数据 renderContactList(contacts); } } // 定义一个函数,用于渲染联系人列表 function renderContactList(data) { // 获取tbody元素 var tbody = document.getElementById('contact-list'); // 清空tbody元素中的内容 tbody.innerHTML = ''; // 计算起始索引和结束索引 var startIndex = (currentPage - 1) * 5; var endIndex = Math.min(startIndex + 5, data.length); // 遍历符合条件的联系人数据,并将其添加到tbody元素中 for (var i = startIndex; i < endIndex; i++) { var tr = document.createElement('tr'); tr.innerHTML = '<td>' + data[i].name + '</td>' + '<td>' + data[i].phone + '</td>' + '<td>' + data[i].email + '</td>' + '<td><button class="edit-btn" data-index="' + i + '">编辑</button><button class="delete-btn" data-index="' + i + '">删除</button></td>'; tbody.appendChild(tr); } // 渲染分页按钮 renderPageButtons(data.length); } // 定义一个函数,用于渲染分页按钮 function renderPageButtons(totalCount) { // 获取分页按钮所在的容器元素 var pageButtonsContainer = document.getElementById('page-buttons'); // 计算总页数 var totalPage = Math.ceil(totalCount / 5); // 清空分页按钮容器元素中的内容 pageButtonsContainer.innerHTML = ''; // 如果总页数大于1,则渲染分页按钮 if (totalPage > 1) { for (var i = 1; i <= totalPage; i++) { var button = document.createElement('button'); button.innerText = i; button.classList.add('page-btn'); if (i === currentPage) { button.classList.add('active'); } pageButtonsContainer.appendChild(button); } } } // 定义一个函数,用于显示弹出层 function showModal(title, data, onSave) { // 获取弹出层元素 var modal = document.getElementById('modal'); // 获取弹出层中的表单元素 var form = modal.querySelector('form'); // 获取弹出层中的关闭按钮元素 var closeButton = modal.querySelector('.close'); // 获取弹出层中的保存按钮元素 var saveButton = modal.querySelector('#save-btn'); // 获取弹出层中的姓名输入框元素 var nameInput = modal.querySelector('#name'); // 获取弹出层中的电话输入框元素 var phoneInput = modal.querySelector('#phone'); // 获取弹出层中的邮箱输入框元素 var emailInput = modal.querySelector('#email'); // 设置弹出层中的标题 modal.querySelector('h2').innerText = title; // 如果传入了联系人数据,则将其填充到表单中 if (data) { nameInput.value = data.name; phoneInput.value = data.phone; emailInput.value = data.email; } else { nameInput.value = ''; phoneInput.value = ''; emailInput.value = ''; } // 绑定关闭按钮的点击事件处理函数 closeButton.addEventListener('click', function() { modal.style.display = 'none'; }); // 绑定保存按钮的点击事件处理函数 saveButton.addEventListener('click', function(event) { event.preventDefault(); // 如果姓名或电话邮箱为空,则弹出提示框 if (!nameInput.value || !phoneInput.value || !emailInput.value) { alert('姓名、电话邮箱不能为空!'); return; } // 调用保存函数,并传入表单中的数据 onSave({ name: nameInput.value, phone: phoneInput.value, email: emailInput.value }); // 隐藏弹出层 modal.style.display = 'none'; }); // 显示弹出层 modal.style.display = 'block'; } // 定义一个函数,用于添加联系人 function addContact(contact) { // 将联系人数据添加到数组中 contacts.push(contact); // 重新渲染联系人列表和分页按钮 renderContacts(); } // 定义一个函数,用于删除联系人 function deleteContact(index) { // 从数组中删除指定索引的联系人数据 contacts.splice(index, 1); // 重新渲染联系人列表和分页按钮 renderContacts(); } // 定义一个函数,用于更新联系人 function updateContact(index, contact) { // 更新指定索引的联系人数据 contacts[index] = contact; // 重新渲染联系人列表和分页按钮 renderContacts(); } // 页面加载完成后,初始化联系人列表和分页按钮 window.addEventListener('load', function() { // 渲染联系人列表和分页按钮 renderContacts(); // 绑定添加联系人按钮的点击事件处理函数 var addButton = document.querySelector('.add-btn'); addButton.addEventListener('click', function() { showModal('添加联系人', null, addContact); }); // 绑定分页按钮的点击事件处理函数 var pageButtonsContainer = document.getElementById('page-buttons'); pageButtonsContainer.addEventListener('click', function(event) { if (event.target.classList.contains('page-btn')) { currentPage = parseInt(event.target.innerText); renderContacts(); } }); // 绑定编辑按钮的点击事件处理函数 var tbody = document.getElementById('contact-list'); tbody.addEventListener('click', function(event) { if (event.target.classList.contains('edit-btn')) { var index = parseInt(event.target.getAttribute('data-index')); showModal('编辑联系人', contacts[index], function(contact) { updateContact(index, contact); }); } }); // 绑定删除按钮的点击事件处理函数 tbody.addEventListener('click', function(event) { if (event.target.classList.contains('delete-btn')) { var index = parseInt(event.target.getAttribute('data-index')); if (confirm('确定要删除该联系人吗?')) { deleteContact(index); } } }); // 绑定搜索框的输入事件处理函数 var searchInput = document.getElementById('search-input'); searchInput.addEventListener('input', function() { renderContacts(); }); }); ``` 这段代码实现了以下功能: 1. 定义了一个数组,用于存放联系人数据。 2. 定义了一个变量,用于存放当前页码。 3. 定义了一个函数,用于渲染联系人列表。 4. 定义了一个函数,用于渲染分页按钮。 5. 定义了一个函数,用于显示弹出层。 6. 定义了三个函数,分别用于添加、删除和更新联系人。 7. 页面加载完成后,初始化联系人列表和分页按钮,并绑定相应的事件处理函数。 你可以将这段代码复制到你的项目中,并根据你的需求进行修改和完善。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值