只能输入整数或者小数点后几位
input输入框实时显示计算,不能有多余的.,结果保留两位小数
<input id="task_num" type="text" oninput = "handleMoney(this,0);">
<input id="task_price" type="text" oninput = "handleMoney(this,1);">function handleMoney(obj,type){//0代表不要小数,1代表代表保留两位小数
if(type == 0){
obj.value = obj.value.replace(/[^\d]/g, '');//没有.
obj.value = obj.value.replace(/\.{2,}/g, '.');
obj.value = obj.value.replace('.', '$#$').replace(/\./g, '').replace('$#$', '.');
//(\d\d)代表保留两位,(\d)代表保留一位,以此类推....
obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3');
if (obj.value.indexOf('.') < 0 && obj.value != '') {
obj.value = parseFloat(obj.value);
}
if ((obj.value.length == 1 && obj.value == '.') || obj.value.substring(0,1) == '.') {
obj.value = '';
}
}else{
obj.value = obj.value.replace(/[^\d.]/g, '');//有.
obj.value = obj.value.replace(/\.{2,}/g, '.');//2即两位
obj.value = obj.value.replace('.', '$#$').replace(/\./g, '').replace('$#$', '.');
obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3');
if (obj.value.indexOf('.') < 0 && obj.value != '') {
obj.value = parseFloat(obj.value);
}
if ((obj.value.length == 1 && obj.value == '.') || obj.value.substring(0,1) == '.') {
obj.value = '';
}
}
var value1 = $('#task_num').val();
var value2 = $('#task_price').val();
if(value1 && value2){
var res = value1*value2;
$('#money').val(res.toFixed(2));
}else{
$('#money').val(0);
}
}