0
点赞
收藏
分享

微信扫一扫

修改jQuery验证方法处理手机号状态

jQuery.validator.addMethod("isMobileExist", function (value, element) {

       var flag = false;

       ns.ajax({

           url: "/customer/checkMobile",

           data: { mobile: value },

           async: false,

           success: function (result) {

               flag = result;

           }

       });

       return flag;


   }, "手机号码已存在!");

这段代码的校验,我想修改为ajax请求返回1是通过,2是不通过提示手机号码已存在,3是不通过显示跟踪按钮点击可跳转


根据需求,我们将修改代码实现以下功能:

  1. 当Ajax返回1时,验证通过
  2. 当返回2时,显示"手机号码已存在"
  3. 当返回3时,显示跟踪按钮并支持跳转

以下是修改后的完整代码:

jQuery.validator.addMethod("isMobileExist", function (value, element) {
    
    // 存储验证结果
    let resultStatus = null;
    
    // 发送AJAX请求
    $.ajax({
        url: "/customer/checkMobile",
        type: "POST",
        dataType: "json",
        data: { mobile: value },
        async: false,  // 同步请求确保验证器能正确获取结果
        success: function (response) {
            resultStatus = response.status;
            
            // 处理返回3的情况:显示跟踪按钮
            if (response.status === 3) {
                const trackBtn = $('<button class="btn-track">查看跟踪</button>');
                trackBtn.click(function() {
                    // 这里替换为你的实际跳转逻辑
                    window.location.href = `/customer/track/${value}`;
                });
                
                // 插入按钮到指定容器
                $("#mobileAddress").html(trackBtn);
            }
        },
        error: function() {
            // 处理请求失败情况
            resultStatus = 0;
        }
    });

    // 根据状态返回验证结果
    switch (resultStatus) {
        case 1:  // 验证通过
            return true;
        case 2:  // 手机号已存在
            return false;
        case 3:  // 需要显示跟踪按钮
            return false;
        default: // 其他情况视为不通过
            return false;
    }
}, function(params, element) {
    // 动态返回错误信息
    return (params === 3) 
        ? "手机号已存在,可查看跟踪记录" 
        : "手机号码已存在!";
});

使用说明:

  1. AJAX返回格式要求

{
    "status": 1,  // 1=通过, 2=存在, 3=存在且显示跟踪
    // 其他数据...
}

  1. HTML需要添加的容器

<!-- 用于显示跟踪按钮 -->
<div id="mobileAddress"></div>

  1. CSS样式建议

.btn-track {
    padding: 4px 10px;
    background: #4285f4;
    color: white;
    border: none;
    border-radius: 3px;
    cursor: pointer;
    margin-left: 10px;
    font-size: 12px;
}

功能说明:

  1. 三种状态处理
  • 返回1:验证通过
  • 返回2:显示默认错误信息
  • 返回3:显示带按钮的错误信息,并渲染跟踪按钮
  1. 跟踪按钮功能
  • 按钮点击跳转到跟踪页面
  • 使用手机号作为URL参数
  • 按钮动态插入到#mobileAddress容器
  1. 错误消息优化
  • 状态3返回专属错误信息
  • 其他失败情况返回默认信息

注意:实际部署时需要将window.location.href中的跳转URL替换为你的真实跟踪页面地址,并确保后端API返回正确的状态码。

举报

相关推荐

0 条评论