function returnFloatText(value)
{
value = value.replace(/\.0+$/g, "");
value = value.replace(/^0$/g, "");
value = value.replace(/,/g, "");
if(value.indexOf('.') != -1) {
value = value.replace(/0+$/g, "");
}
if(value == "")
{
return 0;
}
return parseFloat(value);
}
function checkNum(obj){
obj.value = obj.value.replace(/\.{2,}/, '.');
obj.value = obj.value.replace(/\.+$/, '');
//alert(obj.value);
//if(obj.value == "."||obj.value == ".."||obj.value == "..."||obj.value == "...."||obj.value == "....."
//||obj.value == "......"||obj.value == ".......") {
//obj.value = 0;
//}
}
function checkAcount(obj,contractPrice){
var percent = obj.value;
if('' != (''+percent) && '0' != (''+percent)){
if((""+obj.value).substring(0,1) == "0" && (""+obj.value).substring(0,2)!= '0.'){
alert("数字格式不对!");
obj.value = "";
return;
}
}
if(percent < 0 || percent > 100){
alert("百分比应该在0——100之内!");
obj.value = 0;
}
setValue(obj, contractPrice);
}
function validataAcount(obj,contractPrice){
var numAcount = returnFloatText(obj.value);
if(numAcount < 0 || numAcount > returnFloatText(contractPrice)){
alert("金额数应该大于0,小于合同标的金额!");
obj.value = 0;
}
setPercent(obj, contractPrice);
}
function setPercent(elt, mumm){
var el = eval("document.forms[0]."+elt.name+"Percent");
var val = calculatePercent(elt.value, mumm)*100.0;
val=Math.round(val*10000)/10000;
var strVal = val+"";
if(strVal.indexOf('.')>=0){
var len = strVal.indexOf('.')+5;
strVal = strVal.substring(0,len);
}else{
el.value = val;
return;
}
el.value = strVal;
return;
}
function calculatePercent(value, mumm){
var val = returnFloat(value);
var mum = returnFloat(mumm);
if(mum==0.0){
return 0.0;
}else{
if(val/mum < 0.000001){
return 0.0;
}
return formatFloat(val/mum+"");
}
}
function setValue(elt, factor){
var el = eval("document.forms[0]."+elt.name.substring(0,elt.name.length-("Percent".length)));
el.value = calculateValue(elt.value, factor);
}
function calculateValue(percent, factor){
var per = returnFloat(percent);
var fac = returnFloat(factor);
var result = (per*fac)/100.0 + "";
return formatFloat(parseFloat(result).toFixed(2));
}
<input type="text" name="contractPrice" style="text-align:right"
class="flat_u" size="25"
value="100" />
<input type="text"
name="advancePaymentPercent"
style="text-align:right"
onchange="checkNum(this);checkAcount(this,contractPrice.value);"
onkeypress="return event.keyCode>=48&&event.keyCode<=57||event.keyCode==46"
onkeydown="if(event.keyCode==13)event.keyCode=9"
onfocus="initText(this)" class="flat_u" size="25" maxlength="6"
onblur="checkNum(this);"
value="" />
<br>
<input type="text"
name="advancePayment" style="text-align:right" class="flat_u"
onchange="validataAcount(this,contractPrice.value);"
onkeypress="return event.keyCode>=48&&event.keyCode<=57||event.keyCode==46"
onfocus="initText(this)" onblur="formatNumberScope(this,2);"
size="25" maxlength="15"
value="" />