1.数量number的数据校验
我们在idea的jsp页面上展示东西的时候,在做类似购物的时候,需要给数量和价格做一个数据校验,让它的值只能是数字和.,并且只能以数字开始,以数字结尾。
方式一
<input value='0' onkeyup="this.value= this.value.match(/\d+(\.\d{0,2})?/) ? this.value.match(/\d+(\.\d{0,2})?/)[0] : ''" />
方式二
<input onkeyup="inputBox(this)" value="1" />
// 数量输入框
function inputBox(obj) {
var currentNumber=$(obj).val();
obj.value = obj.value.replace(/[^\d.]/g, ""); //清除“数字”和“.”以外的字符
obj.value = obj.value.replace(/^\./g, ""); //验证第一个字符是数字而不是.
obj.value = obj.value.replace(/\.{2,}/g, "."); //只保留第一个. 清除多余的.
obj.value = obj.value.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
if(!currentNumber){
$(obj).val(1);
}
}
2.实现数量的加减功能
<div class="input-item">
数量:
<image onclick="reduces(this)" class="clicksPic" src="${ctxStatic}/images/reduce.png" style="margin-left:5px"/>
<input class="onlyDoubles " value='0' id="number${sp.user_id}" data-userids="${sp.user_id}" data-stock="${sp.number}" data-number="number" data-fl_id="${sp.fl_id}" data-unit="${sp.unit}" data-user_name="${sp.user_name}" data-order_money="order_money" data-sjname="${sp.sjname}" data-price="${sp.price}" data-user_id="${sp.user_id}" onkeyup="inputBox(this)" />
<image onclick="pluss(this)" class="clicksPic" src="${ctxStatic}/images/plus.png" style="margin-left:5px" />
</div>
//<div class="input-item">
//数量:
//<image onclick="reduces(this)" class="clicksPic" src="${ctxStatic}/images/reduce.png" />
//<input class="onlyDoubles" value='0' onkeyup="this.value= this.value.match(/\d+(\.\d{0,2})?/) ? this.value.match(/\d+(\.\d{0,2})?/)[0] : ''" />
//<image onclick="pluss(this)" class="clicksPic" src="${ctxStatic}/images/plus.png" />
//</div>
// 商品数量减
function reduces(obj){
// 获取当前商品数量
var currentNumber=$(obj).next().val();
var geshu = parseFloat(currentNumber)-1;
if(geshu<=0){
$(obj).next().val(0);
$("#number"+numbery).removeClass("yangshids");
$("#number"+numbery).addClass("e");
$("#"+numbery).removeClass("yangshids");
$("#"+numbery+"s").removeClass("yangshids");
$("#commodity"+numbery).hide();
$("#numbers"+numbery).removeClass("beijing");
}else if(currentNumber==''){
$(obj).next().val(0);
}else {
$(obj).next().val(parseFloat(geshu).toFixed(2));
}
}
// 商品数量加
function pluss(obj){
// 获取当前商品数量
var currentNumber=parseFloat($(obj).prev().val());
// var number = parseFloat($(obj).val()); // 当前数量
var kucun = parseFloat($(obj).data("stock"));
var sjname = $(obj).data("sjname") // 名称
if((parseFloat(currentNumber)>parseFloat(kucun))){
warning(sjname+"数量大于库存数量");
}
// 商品数量加1
$(obj).prev().val(currentNumber+1);
}