javascript代码:
function getCheckbox(name,id){
var check = 0;
var deger = "option-checkbox-"+id;
var dom = document.getElementById(deger);
if( dom.checked )
check += parseFloat( dom.value );
else check -= parseFloat( dom.value );
return check.toFixed(2);**//right value.(12.45)**
}
function getRadio(name,id) {
var radio=0;
var deger="option-radio-"+id;
var radio="option["+name+"]";
var selectedli = document.getElementsByName(radio);
var degerli = document.getElementById(deger);
if( selectedli.checked )
radio = parseFloat( degerli.value );
else radio = parseFloat( degerli.value )
return radio.toFixed(2)**//right value.(42.00)**
}
function getSelected(name,id) {
var selectedid="option["+name+"]";
var selecte = 0;
var selected = document.getElementById( selectedid );
selecte = parseFloat(selected.value);
return selecte.toFixed(2);**//right value.(-12.29)**
}
function toplam(name,id) {**//not expected(0)**
var toplan = 0;
toplan = getSelected(name,id)+getRadio(name,id)+getCheckbox(name,id);
$( '#toplam_goster' ).fadeOut(200, function(){
document.getElementById("toplam_goster").innerHTML = toplan;
});
$( '#toplam_goster' ).fadeIn(200);
}
。在最后一个函数中返回0.如何修复它。
感谢。
答案 0 :(得分:3)
return selecte.toFixed(2); //这会返回字符串和添加可能 返回0
返回号码,即返回选择* 1 或在加入前转换为数字,即
toplan=getSelected(name,id)*1+getRadio(name,id)*1+getCheckbox(name,id)*1;
答案 1 :(得分:1)
此特定功能存在一些问题:
function getRadio(name,id)
{
var radio=0;
var deger="option-radio-"+id;
var radio="option["+name+"]";
var selectedli = document.getElementsByName(radio);
var degerli =document.getElementById(deger);
if(selectedli.checked) {
radio = parseFloat(degerli.value);
}
else {
radio = parseFloat(degerli.value)
}
return radio.toFixed(2)**//right value.(42.00)**
}
您将radio
变量声明两次 - 最初的值为0
,然后是字符串。
你正在调用document.getElementsByName()
,它返回一个元素数组,然后再执行selectedli.checked
;该数组不具有checked属性。如果您希望它只返回一个radio
元素,那么您应该测试selectedli[0].checked
。
无论条件是否为true,您都有if
语句执行相同的代码。这可能是您的错误,也可能完全取消if
语句。