jQuery实现留言板
标签搜索
侧边栏壁纸
  • 累计撰写 16 篇文章
  • 累计收到 24 条评论

jQuery实现留言板

lay
lay
2023-06-13 / 0 评论 / 80 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2023年06月13日,已超过933天没有更新,若内容或图片失效,请留言反馈。

浏览效果

1

2

html

    <div class="box">
        <div class="tab-title">
            <div class="tab-title1 active">留言页</div>
            <div class="tab-title2">留言板</div>
        </div>  
        
        

        <div id="tab1" class="tab-box">
            <ul id="messageList">
                <li>

                        <!-- 头像 -->
                        <div class="user">
                            <div class="portrait">
                                <img src="images/wx.png" alt="" srcset="">
                            </div>
                            <span class="appellation">青竹</span>
                            <div class="relation">
                                <p>39231314@qq.com</p>
                                <p>123456789</p>
                            </div>
                        </div>
                        
                        <div class="performance">
                            成绩JavaScript :<span class="grade">100</span>
                        </div>
                        <div class="substance">
                            <p class="title">留言:</p>
                            <p class="substance">生活中,若一个工具箱出现了,我们就不得不考虑它出现了的事实。 一般来说, 一般来说, 一个工具箱的发生,到底需要如何做到,不一个工具箱的发生</p>
                        </div>
                        <div>
                            <button>删除</button>
                        </div>
                    
                </li>
            </ul>
        </div>

        <div id="tab2" class="tab-box" style="display: none;">
            <form id="messageForm">
                <label for="name">姓名:</label>
                <input type="text" id="name" required><br><br>

                <label for="email">邮箱:</label>
                <input type="email" id="email" required><br><br>

                <label for="phone">电话:</label>
                <input type="tel" id="phone" required><br><br>

                <label for="message">留言:</label><br>
                <textarea id="message" required></textarea><br><br>

                <label for="course">课程成绩:</label>
                <input type="number" id="course" required><br><br>
                
                <button type="submit">提交留言</button>
              </form>
        </div>      
    </div>

css

.box{
    width: 700px;
    border: 1px solid #000;
    text-align: center;
    margin: 100px auto;
}
.tab-title{
    display: flex;
    padding: 10px 0;
}
.tab-title>div{
    width: 50%;
    /* height: 20px; */
    font-size: 25px;
    /* background-color: aqua; */
    margin: 0 10px;
}
.active{
    background-color: aqua;
}

.tab-box li{
    padding: 10px;
    margin: 10px;
    border: 1px solid #000;
}

.user{
    height: 50px;
}

.portrait{
    float: left;
}
.appellation{
    float: left;
}
.relation{
    float: right;
    padding: 6px 5px;
    font-size: 15px;
    color: #ccc;
}
.appellation{
    padding: 6px 5px;
    font-size: 20px;
}
.performance{
    padding: 10px 0;
}
.performance .grade{
    color: #ff0000;
}
.title{
    text-align: left;
    margin: 5px;
}

.substance{
    padding: 10px;
}

/* 留言版 */
.box form{
    border: 1px solid #000;
    margin: 10px;
    padding: 10px;
    /* text-align: center; */
}

JavaScript


$(document).ready(function() {
    // 定义一个全局数组,用于存储留言和成绩
    var messages = [
      {
          "name": "张三",
          "email": "39231314@qq.com",
          "phone": "13829309741",
          "message": "12345678911",
          "course": 30
      }
  ];
  
    // 获取表单元素
    var $form = $('#messageForm');
    var $nameInput = $('#name');
    var $emailInput = $('#email');
    var $phoneInput = $('#phone');
    var $messageInput = $('#message');
    var $courseInput = $('#course');
    var $messageList = $('#messageList');
  
    // 添加提交留言事件监听器
    $form.on('submit', function(event) {
      event.preventDefault(); // 阻止表单默认提交行为
  
      var name = $nameInput.val();
      var email = $emailInput.val();
      var phone = $phoneInput.val();
      var message = $messageInput.val();
      var course = parseFloat($courseInput.val());
  
      // 校验邮箱格式
      if (!isValidEmail(email)) {
        alert('请输入有效的邮箱地址');
        return;
      }
  
      // 校验电话号码格式
      if (!isValidPhone(phone)) {
        alert('请输入有效的电话号码');
        return;
      }
  
      // 创建一个包含姓名、邮箱、电话、留言内容和课程成绩的对象
      var newMessage = {
        name: name,
        email: email,
        phone: phone,
        message: message,
        course: course
      };
  
      // 将新留言对象添加到留言数组中
      messages.push(newMessage);
  
      // 清空输入框
      $nameInput.val('');
      $emailInput.val('');
      $phoneInput.val('');
      $messageInput.val('');
      $courseInput.val('');
  
      // 更新留言列表
      renderMessages();
    });
  
    // 渲染留言列表
    function renderMessages() {
        // 清空留言列表
        $messageList.empty();
    
        // 遍历留言数组,创建并添加留言项到列表中
        for (var i = 0; i < messages.length; i++) {
        var messageItem = $('<li>');
    
        // 创建留言内容的元素,可以使用自定义的HTML结构和CSS样式
        var messageContent = $('<div>')
            .html(
                `
               <div class="user">
                    <div class="portrait">
                                <img src="images/wx.png" alt="" srcset="">
                    </div>
                    <span class="appellation">`+ messages[i].name+`</span>
                    <div class="relation">
                      <p>`+messages[i].email+`</p>
                      <p>`+messages[i].phone+`</p>
                    </div>
                </div>
                <div class="performance">
                    成绩JavaScript :<span class="grade">`+messages[i].course +`</span>
                </div>
                <div class="substance">
                    <p class="title">留言:</p>
                    <p class="substance">`+messages[i].message+`</p>
                </div>
                `
            );
    
        // 创建删除按钮
        var deleteButton = $('<button>')
            .addClass('delete-button')
            .text('删除')
            .attr('data-index', i)
            .on('click', deleteMessage);
    
        messageItem.append(messageContent, deleteButton);
        $messageList.append(messageItem);
        }
    }
  
  
    // 删除留言函数
    function deleteMessage(event) {
      var index = $(this).attr('data-index'); // 获取要删除的留言在数组中的索引
      messages.splice(index, 1); // 从数组中删除该留言
      renderMessages(); // 重新渲染留言列表
    }
  
    // 邮箱格式校验函数
    function isValidEmail(email) {
      // 使用正则表达式进行邮箱格式校验
      var emailRegex = /^\w+([.-]?\w+)*@\w+([.-]?\w+)*(\.\w{2,3})+$/;
      return emailRegex.test(email);
    }
  
    // 电话号码格式校验函数
    function isValidPhone(phone) {
      // 使用正则表达式进行电话号码格式校验
      var phoneRegex = /^(?:(?:\+|00)86)?1[3-9]\d{9}$/;
      return phoneRegex.test(phone);
    }

    // 选项
    $('.tab-title1').click(function() {  
        $('.tab-title2').removeClass('active'); 
        $(this).addClass('active');
        $('#tab2').hide()
        $('#tab1').show()
        renderMessages(messages);
        console.log(messages);
      });  
  
      $('.tab-title2').click(function(){
          $('.tab-title1').removeClass('active'); 
          $(this).addClass('active'); 
          $('#tab1').hide()
          $('#tab2').show()
      })

      renderMessages(messages);
});

1

评论 (0)

取消