首页脚本

在首页的时候我们需要做的事情是,选择了快递公司和输入了快递单号之后,点击确认,调整到详情页。

绑定确认按钮的点击事件,当点击确认按钮时候触发逻辑步骤如下:

  1. 阻止浏览器默认提交行为
  2. 获取选择快递控件的select元素的输入值
  3. 获取输入快递控件的input元素的输入值
  4. 判断是否都有值
  5. 如果其中一个没有,显示错误提示
  6. 如果都有,使用获取到的值拼接出跳转的地址字符串
  7. 使用 location.href 伴随着参数跳转到详情页

绑定选择和输入控件,当点击时候出发以下逻辑

  1. 寻找当前元素的下一个节点(错误提示),隐藏。
$(function(){
    let indexPage = {
        init:function(){
            this.bind();
        },
        bind:function(){
            // 绑定确认按钮的点击事件
            $('#submit').on('click',this.submitEvent);
            // 绑定选择和输入控件事件
            $('.form-item-input').on('click',this.cleanError);
            $('.form-item-select').on('click',this.cleanError);
        },
        // 清除错误提示
        cleanError:function(){
            // 此处 this 为被点击的控件元素
            // 寻找当前节点的下一个节点,隐藏。
            $(this).next().hide();
        },
        submitEvent:function(e){
            // 阻止浏览器默认提交行为,form表单会有一个默认提交动作
            e.preventDefault();

            // 获取选择和输入控件元素的值
            let order_id = $('.form-item-input').val();
            let company  = $('.form-item-select').val();

            // 如果输入控件的值为空
            if(!order_id){
                // 显示该控件下的错误提示节点
                $('.form-item-input').next().show();
            }
            // 如果选择控件的值为空
            if(!company){
                // 显示该控件下的错误提示节点
                $('.form-item-select').next().show();
            }
            // 如果他们两个输入控件中有其中一个为空,函数返回结束运行。
            if(!order_id || !company){
                return
            }

            // 拼接跳转的URL详情页地址
            let url = `./detail.html?company=${company}&order_id=${order_id}`;
            // 跳转到详情页
            location.href = url;
        }
    }

    indexPage.init();
})