1. js表单计算金额问题
我是看分来的,顺带练练手
示例代码(不限定有多少商品):
<divid="list">
<inputtype="checkbox"info="qb"price="1.5">铅笔1.5
<inputtype="text"to="qb">
<br>
<inputtype="checkbox"info="yzb"price="2.5">圆珠笔2.5
<inputtype="text"to="yzb">
<br>
<inputtype="checkbox"info="gb"price="3">钢笔3
<inputtype="text"to="gb">
<br>
<inputtype="checkbox"info="sb"price="999">神笔999
<inputtype="text"to="sb">
<br>
合计:<inputtype="text"id="hj">
</div>
<script>
/**实例代码仅供参考,要兼容老浏览器用jquery把相应接口换掉即可**/
varcheckbox={}//复选框
,text={}//输入框
,checkboxElems=document.querySelectorAll("input[info]")
,textElems=document.querySelectorAll("input[to]")
,hj=document.querySelector("#hj")
,list=document.querySelector("#list");
//获取所有复选框和数据
for(vari=0,o;i<checkboxElems.length;i++){
o=checkboxElems[i];
checkbox[o.getAttribute("info")]={o:o,price:+o.getAttribute("price")};
};
//获取所有价格输入框
for(vari=0,o;i<textElems.length;i++){
o=textElems[i];
text[o.getAttribute("to")]=o;
};
//仅需绑定change事件即可全部处理选中和修改价格
list.addEventListener("change",function(e){
varo,price=0,n;
for(variincheckbox){
o=checkbox[i];
if(o.o.checked){
n=text[i].value;
//无数量时默认填1
if(!n||isNaN(n=+n)||n<0){
text[i].value=n=1;
};
price+=o.price*n;
};
};
hj.value=price;
});
</script>
2. jsp 输入框里输入数量 金额自动算出,并且自动变化。
可以用js来控制,给你的输入框增加一个事件,每输入一个数字就会调用,然后可以在调用的方法内计算金额,并把结果放到你需要显示的地方!
3. 怎么用js把小写金额转大写金额
亿|
//小写转成大写金额
functionAmountLtoU(num){
varstrOutput="";
varstrUnit='仟佰拾亿仟佰拾万仟佰拾元角分';
num+="00";
varintPos=num.indexOf('.');
if(intPos>=0)
num=num.substring(0,intPos)+num.substr(intPos+1,2);
strUnit=strUnit.substr(strUnit.length-num.length);
for(vari=0;i<num.length;i++)
strOutput+='零壹贰叁肆伍陆柒捌玖'.substr(num.substr(i,1),1)+strUnit.substr(i,1);
returnstrOutput.replace(/零角零分$/,'整').replace(/零[仟佰拾]/g,'零').replace(/零{2,}/g,'零').replace(/零([亿|万])/g,'$1').replace(/零+元/,'元').replace(/亿零{0,3}万/,'亿').replace(/^元/,"零元");
4. js怎么把数字金额转换中文大写金额
//代码如下所示:
functionconvertCurrency(money){
//汉字的数字
varcnNums=newArray('零','壹','贰','叁','肆','伍','陆','柒','捌','玖');
//基本单位
varcnIntRadice=newArray('','拾','佰','仟');
//对应整数部分扩展单位
varcnIntUnits=newArray('','万','亿','兆');
//对应小数部分单位
varcnDecUnits=newArray('角','分','毫','厘');
//整数金额时后面跟的字符
varcnInteger='整';
//整型完以后的单位
varcnIntLast='元';
//最大处理的数字
varmaxNum=999999999999999.9999;
//金额整数部分
varintegerNum;
//金额小数部分
vardecimalNum;
//输出的中文金额字符串
varchineseStr='';
//分离金额后用的数组,预定义
varparts;
if(money==''){return'';}
money=parseFloat(money);
if(money>=maxNum){
//超出最大处理数字
return'';
}
if(money==0){
chineseStr=cnNums[0]+cnIntLast+cnInteger;
returnchineseStr;
}
//转换为字符串
money=money.toString();
if(money.indexOf('.')==-1){
integerNum=money;
decimalNum='';
}else{
parts=money.split('.');
integerNum=parts[0];
decimalNum=parts[1].substr(0,4);
}
//获取整型部分转换
if(parseInt(integerNum,10)>0){
varzeroCount=0;
varIntLen=integerNum.length;
for(vari=0;i<IntLen;i++){
varn=integerNum.substr(i,1);
varp=IntLen-i-1;
varq=p/4;
varm=p%4;
if(n=='0'){
zeroCount++;
}else{
if(zeroCount>0){
chineseStr+=cnNums[0];
}
//归零
zeroCount=0;
chineseStr+=cnNums[parseInt(n)]+cnIntRadice[m];
}
if(m==0&&zeroCount<4){
chineseStr+=cnIntUnits[q];
}
}
chineseStr+=cnIntLast;
}
//小数部分
if(decimalNum!=''){
vardecLen=decimalNum.length;
for(vari=0;i<decLen;i++){
varn=decimalNum.substr(i,1);
if(n!='0'){
chineseStr+=cnNums[Number(n)]+cnDecUnits[i];
}
}
}
if(chineseStr==''){
chineseStr+=cnNums[0]+cnIntLast+cnInteger;
}elseif(decimalNum==''){
chineseStr+=cnInteger;
}
returnchineseStr;
}
5. 跪求 JS中金额大小写转换 且四舍五入保留两位小数
<script type="text/javascript">
function money(mon){
var smon = Math.round(mon*100);
var splot = smon % 100;
var zheng = parseInt(smon / 100);
var ch_key = new Array('零','壹','贰','叁','肆','伍','陆','柒','捌','玫');
var dan_key = new Array('拾','佰','仟','万','拾万','百万','仟万','亿');
var str_num = zheng+'';
var len = str_num.length;
var slen = len-1;
var rs = ''
for(var i = 0;i<len;i++){
var ch = parseInt(str_num.charAt(i));
rs += ch_key[ch];
slen --;
if(ch > 0 && slen >= 0) rs += dan_key[slen];
}
if(splot == 0){
rs += '元整';
}else{
var str = splot + '';
var ch = parseInt(str.charAt(0));
rs += '点' + ch_key[ch];
ch = parseInt(str.charAt(1));
rs += ch_key[ch] + '元';
}
return rs;
}
alert(money(211199.999));
</script>
6. js怎么把数字金额转换为大写金额
网络一下这种写好的js很多 随便选个就可以;我帮你搜了个;
function Arabia_to_Chinese(Num){
for(i=Num.length-1;i>=0;i--)
{
Num = Num.replace(",","")
Num = Num.replace(" ","")
}
Num = Num.replace("¥","")
if(isNaN(Num)) {
alert("请检查小写金额是否正确");
return;
}
part = String(Num).split(".");
newchar = "";
for(i=part[0].length-1;i>=0;i--){
if(part[0].length > 10){ alert("位数过大,无法计算");return "";}
tmpnewchar = ""
perchar = part[0].charAt(i);
switch(perchar){
case "0": tmpnewchar="零" + tmpnewchar ;break;
case "1": tmpnewchar="壹" + tmpnewchar ;break;
case "2": tmpnewchar="贰" + tmpnewchar ;break;
case "3": tmpnewchar="叁" + tmpnewchar ;break;
case "4": tmpnewchar="肆" + tmpnewchar ;break;
case "5": tmpnewchar="伍" + tmpnewchar ;break;
case "6": tmpnewchar="陆" + tmpnewchar ;break;
case "7": tmpnewchar="柒" + tmpnewchar ;break;
case "8": tmpnewchar="捌" + tmpnewchar ;break;
case "9": tmpnewchar="玖" + tmpnewchar ;break;
}
switch(part[0].length-i-1){
case 0: tmpnewchar = tmpnewchar +"元" ;break;
case 1: if(perchar!=0)tmpnewchar= tmpnewchar +"拾" ;break;
case 2: if(perchar!=0)tmpnewchar= tmpnewchar +"佰" ;break;
case 3: if(perchar!=0)tmpnewchar= tmpnewchar +"仟" ;break;
case 4: tmpnewchar= tmpnewchar +"万" ;break;
case 5: if(perchar!=0)tmpnewchar= tmpnewchar +"拾" ;break;
case 6: if(perchar!=0)tmpnewchar= tmpnewchar +"佰" ;break;
case 7: if(perchar!=0)tmpnewchar= tmpnewchar +"仟" ;break;
case 8: tmpnewchar= tmpnewchar +"亿" ;break;
case 9: tmpnewchar= tmpnewchar +"拾" ;break;
}
newchar = tmpnewchar + newchar;
}
if(Num.indexOf(".")!=-1){
if(part[1].length > 2) {
part[1] = part[1].substr(0,2)
}
for(i=0;i<part[1].length;i++){
tmpnewchar = ""
perchar = part[1].charAt(i)
switch(perchar){
case "0": tmpnewchar="零" + tmpnewchar ;break;
case "1": tmpnewchar="壹" + tmpnewchar ;break;
case "2": tmpnewchar="贰" + tmpnewchar ;break;
case "3": tmpnewchar="叁" + tmpnewchar ;break;
case "4": tmpnewchar="肆" + tmpnewchar ;break;
case "5": tmpnewchar="伍" + tmpnewchar ;break;
case "6": tmpnewchar="陆" + tmpnewchar ;break;
case "7": tmpnewchar="柒" + tmpnewchar ;break;
case "8": tmpnewchar="捌" + tmpnewchar ;break;
case "9": tmpnewchar="玖" + tmpnewchar ;break;
}
if(i==0)tmpnewchar =tmpnewchar + "角";
if(i==1)tmpnewchar = tmpnewchar + "分";
newchar = newchar + tmpnewchar;
}
}
while(newchar.search("零零") != -1)
newchar = newchar.replace("零零", "零");
newchar = newchar.replace("零亿", "亿");
newchar = newchar.replace("亿万", "亿");
newchar = newchar.replace("零万", "万");
newchar = newchar.replace("零元", "元");
newchar = newchar.replace("零角", "");
newchar = newchar.replace("零分", "");
if (newchar.charAt(newchar.length-1) == "元" || newchar.charAt(newchar.length-1) == "角")
newchar = newchar+"整"
return newchar;
}
看了下没什么大问题
7. JS如何将文本框的值转化为带2位小数的金额类型
你可以使用num.toFixed(2)方法。格式化数字的方法
8. 求JS 把阿拉伯数字转换成中文,是金额类型的
拾|可以采用定义串的形式,然后进行替换的方法操作
比如:var n="12345678090";
var unit = "千百拾亿千百拾万千百拾元回", str = "";
然后组装str
str.replace(/零(千|百|答拾|角)/g, "零")
这个方式