加减号控制input框里数字的js

一个加减号控制input框里数字的js,左边是一个减号,右边一个加号,中间是input框,当数字为1时,左边减号置灰不可点击,数字为99时,加号置灰不可点击,点击加减号,input数字改变.

效果图如下:

addInputWithAdjustBtn()和addEvent()是封装后的函数(我是封装在tvbz_ui.js里面),页面需要的时候,直接引用即可

/*
*根据input输入框调整button按钮
*@param inputId   input输入框Id
*@param changeCount  input输入框事件
*/
function addInputWithAdjustBtn(inputId,changeCount) {
    var inputObj = document.getElementById(inputId);
    var height = inputObj.offsetHeight + "px";
    var width = (inputObj.offsetWidth / 2) + "px";
    var button_reduce = document.createElement("input");
    button_reduce.type='button';
    button_reduce.value='-';
    button_reduce.id='reduce_btn';
    button_reduce.style.width= width;
    button_reduce.style.height = height;
    var button_add = document.createElement("input");
    button_add.type='button';
    button_add.value='+';
    button_add.id='add_btn';
    button_add.style.width= width;
    button_add.style.height = height;
    inputObj.parentNode.insertBefore(button_reduce,inputObj);
 inputObj.parentNode.insertBefore(button_add,inputObj.nextSibling);
     
    addEvent(button_reduce,'click',function(){
        var num_reduce = parseInt($("#"+inputId).val()) - 1;
        $('#'+inputId).next().attr("disabled",false);
        if (num_reduce <= 1) {
            button_reduce.disabled = true;
            $('#'+inputId).val(num_reduce);
        } else {
            button_reduce.disabled = false;
            $('#'+inputId).val(num_reduce);
        }
        changeCount();
    });
    
    addEvent(button_add,'click',function(){
        var num_add = parseInt($("#"+inputId).val()) + 1;
        $('#'+inputId).prev().attr("disabled",false);
        if (num_add >= 99) {
            button_add.disabled = true;
            $('#'+inputId).val(num_add);
        } else {
            button_add.disabled = false;
            $('#'+inputId).val(num_add);
        }
        changeCount();
    });
};

function addEvent(el, type, myFunction) {
    if(el.addEventListener){  //所有主流浏览器,除了 IE 8 及更早 IE版本
        el.addEventListener(type,myFunction);
    }else if(el.attachEvent()){   // IE 8 及更早 IE 版本
        el.attachEvent('on' + type,myFunction);
    }else{
     return false;
    }

};

<input size=2 maxlength=2 value=1 id="payCnt" οnkeyup=Num(this) style="text-align: center;" >

input输入框手动输入数值后响应onkeyup事件js:

    function Num(obj){
        var count = $("#payCnt").val();
        obj.value = obj.value.replace(/[A-Za-z0-9]/g, toHalf); //A-Za-z0-9全角转半角数字
        obj.value = obj.value.replace(/[^\d]/g,""); //清除"数字"以外的字符
        if (typeof(obj.value) =='undefined' || obj.value == "" || obj.value == null) {
            $("#payCnt").prev().attr("disabled",true);
            $("#payCnt").next().attr("disabled",true);
        } else {
            if (count <= 1) {
                $("#payCnt").prev().attr("disabled",true);
                $("#payCnt").next().attr("disabled",false);
            }
            if (count >= 99) {
                $("#payCnt").prev().attr("disabled",false);
                $("#payCnt").next().attr("disabled",true);
            }
            if (count > 1 && count < 99) {
                $("#payCnt").prev().attr("disabled",false);
                $("#payCnt").next().attr("disabled",false);
            }
        }
    };

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值