导航

输入框条件不满足时聚焦输入框

Posted on 2025-03-30 01:20  卖姜茶  阅读(12)  评论(0)    收藏  举报

<input type="text" class="layui-input serial-number" placeholder="请输入产品序号" lay-verify="serial_number"
                name="merchant[{{i}}][serial_number]" value="{{ d.list[i].serial_number }}"  data-index="{{i}}">
form.verify({
	// 产品序号
	serial_number: function(value) {
	    // 产品序号是否为空
	    if (value.length == 0) {
			element.tabChange('goods_tab', "basic");
			return "请输入产品序号";
		}
	    // 验证产品序号是否存在
	    merchantData.map(merchant => {
	        var verify_url = ns.url("shop/product/verifyMerchant");
	        var res = $.ajax({
	            url: verify_url,
	            method: "POST",
	            data: { serial_number: merchant.serial_number },
	        });
	        if(res.code === 1) {
	            element.tabChange('goods_tab', "basic");
	            return res.message;
	        }
	    })
	},
});

// 检测合作商家百分比
var totalRatio = merchantData.reduce((sum,merchant) => {
    return sum + Number( merchant.sharing_ratio || 0);
},0);
if (totalRatio > 100) {
    layer.msg("分成比例总和不能超过100%");
    // 找到最后一个输入的分成比例框并聚焦
    const $lastRatioInput = $(".sharing-ratio").last();
    if ($lastRatioInput.length) {
        $('html, body').animate({
            scrollTop: $lastRatioInput.offset().top - 100
        }, 500);
        $lastRatioInput.focus();
    }
    element.tabChange('goods_tab', 'collaborate');
    return false;
} else if (totalRatio === 100) {
    layer.msg("该商品本店分成为0");
    // 找到第一个分成比例输入框并聚焦
    const $firstRatioInput = $(".sharing-ratio").first();
    if ($firstRatioInput.length) {
        $('html, body').animate({
            scrollTop: $firstRatioInput.offset().top - 100
        }, 500);
        $firstRatioInput.focus();
    }
    element.tabChange('goods_tab', 'collaborate');
    return false;
} else {}
// 商家信息是否为空
for (var merchant of merchantData) {
    if (!merchant.serial_number) {
        layer.msg("合作商家信息不全");
        const invalidInput = $(`.merchant-item input[data-index="${merchantData.indexOf(merchant)}"]`).first();
        if (invalidInput.length) {
            $('html, body').animate({
                scrollTop: invalidInput.offset().top - 100
            }, 500);
            invalidInput.focus();  // 不满足条件时聚焦
        }
        element.tabChange('goods_tab', 'collaborate'); // 切换到合作商家tab
        return false;
    } else if (!merchant.sharing_ratio) {
        layer.msg("合作比例不可为空或0");
        // 找到第一个分成比例输入框并聚焦
        const $firstRatioInput = $(".sharing-ratio").first();
        if ($firstRatioInput.length) {
            $('html, body').animate({
                scrollTop: $firstRatioInput.offset().top - 100
            }, 500);
            $firstRatioInput.focus();
        }
        element.tabChange('goods_tab', 'collaborate');
        return false;
    }
}