文本框数字自增一和自减一

文本框数字自增一和自减一

效果图:
在这里插入图片描述
首先,肯定是需要一个input标签,我在该标签上定义一个onmousemove事件(在鼠标指针移动到元素上时触发)和onmouseout事件(在鼠标指针移动到元素外时触发)用来显示和隐藏自增一、自减一按钮,并且定义了onkeyup事件(释放键盘按钮时执行)限制输入的值只能是0-9之间,但是鼠标的右击粘贴不会执行onkeyup事件,所以又定义了一个onchange事件(内容发生改变时触发)判断输入的值,最终的html如下:

<div>
	<span class='btn btn-danger' style='display:none' onclick='jian($(this))' onmousemove='xianshi($(this))'>-</span>
	<input class='form-control' onmousemove='xianshi($(this))' onmouseout='yincang($(this))' type='text' maxlength='5' onkeyup="value=value.replace(/[^0-9]/g,'')" onchange=' verify($(this))' value="1">
	<span class='btn btn-success' style='display:none' onclick='jia($(this))' onmousemove='xianshi($(this))'>+</span>
</div>

引入jquery插件和layer提示框插件。

<!--jquery插件 -->
<script type="text/javascript" src="js/jquery-2.0.3.min.js"></script>
<!--layer提示框插件 -->
<script type="text/javascript" src="js/layer/layer.js"></script>

显示按钮的方法中,先获取input标签的value值,然后根据值设置第一个span标签(减按钮)和第二个span标签(加按钮)的style属性。

function xianshi(e){
	var S = e.parent().find("input").val();
	if (S<=1) {
		e.parent().find("span").eq(0).attr("style","width:30px;height:30px;margin:2px 0 0 -70px;position:absolute;cursor:pointer;background-color:#ddd;border-color:#ddd");
		e.parent().find("span").eq(1).attr("style","width:30px;height:30px;margin:-32px 0 0 40px;position:absolute;cursor:pointer");
	}else if(S>=99999){
		e.parent().find("span").eq(0).attr("style","width:30px;height:30px;margin:2px 0 0 -70px;position:absolute;cursor:pointer");
		e.parent().find("span").eq(1).attr("style","width:30px;height:30px;margin:-32px 0 0 40px;position:absolute;cursor:pointer;background-color:#ddd;border-color:#ddd");
	}else{
		e.parent().find("span").eq(0).attr("style","width:30px;height:30px;margin:2px 0 0 -70px;position:absolute;cursor:pointer");
		e.parent().find("span").eq(1).attr("style","width:30px;height:30px;margin:-32px 0 0 40px;position:absolute;cursor:pointer");
	}
}

隐藏按钮就将两个按钮的style属性设为隐藏即可。

function yincang(e){
e.parent().find("span").eq(0).attr("style","display:none");
e.parent().find("span").eq(1).attr("style","display:none");
}

判断值的方法呢,就判断value值不是纯数字弹出提示框并将value值赋值为1。

function verify(e){
	var sl= e.val();
	var patrn = /^\d+$/;
	if (!patrn.exec(sl)) {
		layer.alert("请输入正确的数量!", { icon: 0, title: '提示' },function(index){
			layer.close(index);
			e.val("1");
		});
	}
}

自增一的方法就简单了,因为上面的方法已经验证了value值是数字,所以只需判断值在指定范围内就加1;注意:这里要将value值转换为整数类型,不然实现的是拼接1。

function jia(e){
	var A = parseInt(e.parent().find("input").val());
	if (A<99999) {
		e.parent().find("input").val(A+=1);
	}
}

自减一与自增一类似。

function jian(e){
	var A = e.parent().find("input").val();
	if (A>1) {
		e.parent().find("input").val(A-=1);
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

新鑫S

你的鼓励将是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值