<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>
  <TITLE> New Document </TITLE>
  <META NAME="Generator" CONTENT="EditPlus">
  <META NAME="Author" CONTENT="">
  <META NAME="Keywords" CONTENT="">
  <META NAME="Description" CONTENT=""> <script type="text/javascript">
 function calculated_all()
 {
 //单价和加油量填写金额自动显示,单价金额填写加油量自动显示,任意填写两项第三项一定要有正确的显示。
var money=document.add.money.value;
var price=document.add.price.value;
var oil=document.add.Oil_content.value;

}function moneyvaluechang(value){
var newmoney=value;
arert(newmoney);
return newmoney;
}
function Calculated_money()
{
/*
var money=document.add.money.value;
var price=document.add.price.value;
var oil=document.add.Oil_content.value;
if(money!=0&&price!=0)
{
if(money!=document.add.a.value&&price!=document.add.b.value)
{
document.add.Oil_content.value=(money/price).toFixed(2);
}else{
}
document.add.a.value=money;
document.add.b.value=price;
document.add.c.value=oil;
}else if(money!=0&&oil!=0)
{
if(money!=document.add.a.value&&oil!=document.add.c.value)
{
document.add.price.value=(money/oil).toFixed(2);}else{}
document.add.a.value=money;
document.add.b.value=price;
document.add.c.value=oil;
}else if(price!=0&&oil!=0)
{
if(price!=document.add.b.value&&oil!=document.add.c.value){
document.add.money.value=(price*oil).toFixed(2);}
document.add.a.value=money;
document.add.b.value=price;
document.add.c.value=oil;
}
*/
var money=document.add.money.value;
var price=document.add.price.value;
var oil=document.add.Oil_content.value;

if(money!=a()&&price!=b())
{
document.add.Oil_content.value=(money/price).toFixed(2);
}else if(money!=a()&&oil!=c())
{
document.add.price.value=(money/oil).toFixed(2);
}else if(price!=b()&&oil!=c())
{

document.add.money.value=(price*oil).toFixed(2);
}else if(money!=a()&&price!=b()&&oil!=c())
{

}
/*
if(money!=a())
{
if(price!=b())
{
document.add.Oil_content.value=(money/price).toFixed(2);
}else if(oil!=c())
{
document.add.price.value=(money/oil).toFixed(2);
}
}else if(price!=b())
{
if(money!=a())
{
document.add.Oil_content.value=(money/price).toFixed(2);
}else if(oil!=c())
{
document.add.money.value=(oil*price).toFixed(2);
}
}else if(oil!=c())
{
if(money!=a())
{
document.add.price.value=(money/oil).toFixed(2);
}else if(price!=c())
{
document.add.money.value=(oil*price).toFixed(2);
}
}else{

}
*/
}
function a()
{
return document.add.a.value;
}
function b()
{
return document.add.b.value;
}
function c()
{
return document.add.c.value;
}
</script>
 </HEAD> <BODY>
 <form action="apps.php?do=oil&ac=insert&tdo=in" method="post" name="add" id="add" >
 单价<input name="price" id="price"  type="text" style="width:120px" value="0" maxlength="3" onKeyUp="Calculated_money()" onclick="b()" />元
 
加油量:<input name="Oil_content" id="Oil_content"  type="text" style="width:120px" value="0" maxlength="3" onKeyUp="Calculated_money()" onclick="c()" />升
金额:<input name="money" id="money"  type="text" value="0" maxlength="4" style="width:120px" onKeyUp="Calculated_money()"  onclick="a()" />元
<br><input name="a" id="a" value="0" />aa<br>
<br><input name="b" id="b" value="0" />bb<br>
<br><input name="c" id="c"  value="0" />cc<br>
</form>
 </BODY>
</HTML>

解决方案 »

  1.   

    input的onClick改为onChange比较好一点,三个input用同一个onChange处理事件,对三个输入值的判断,两个有值就计算第三个。问一下你的需求,如果三个都输入值,你要计算哪一个?
      

  2.   

    任意添2个文本 另外个文本就能算出值
    text1*text2=text3
    text3/text1=text2
    text3/text2=text1
    改变1个值的时候不做处理
    当改变2个值的时候处理算出值
      

  3.   

    如果你输入了text1,text2,计算出了text3值,这时改变text3会怎么样?计算text1?计算text2?
      

  4.   

    我改变text3的时候 不做处理
    当我再改变text1的时候才处理得到text2 或者改变text2的时候处理得到text1
      

  5.   

    <input type='text' value='' id="value1" name="value1"/>
    <input type='text' value='' id="value2" name="value2"/>
    <input type='text' value='' id="value3" name="value3"/>
    <script>
    var $ = function($){return document.getElementById($)}
    var $addEvent = document.all ? function(dom,ev,fn){dom.attachEvent('on'+ev,fn)}:function(dom,ev,fn,tof){dom.addEventListener(ev,fn,tof)}
    $addEvent($('value1'),'keydown',function(event){
    var fn;
    if($('value3').value){
    fn = function(){$('value2').value = ($('value3').value+0) / ($('value1').value+0)}
      }
    else{
    fn = function(){$('value3').value = $('value2').value ? ($('value1').value * $('value2').value) : '';}
    }
    setTimeout(fn,100);
    })
    $addEvent($('value2'),'keydown',function(event){
    var fn ;
    if($('value3').value){
    fn = function(){$('value1').value = ($('value3').value+0) / ($('value2').value+0)}
      }
    else{

    fn = function(){$('value3').value = $('value1').value ? ($('value1').value * $('value2').value) : '';}
    }
    setTimeout(fn,100);
    },false)
    </script>
      

  6.   

    你填入value1和value2,value3就有值了.再改value3,将不做任何操作,如再改value1,则value2有变化,再改value2,则value1有变化。
    你的需求不是这样的吗?
      

  7.   

    我要的是填入value1和value2,value3就有值了, 当value3改变了,暂时不做操作,如果在改变value1,那么value3/value1 算出value2
    改变1个文本值的时候不操作 改变2个文本值的时候猜操作
      

  8.   

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title> new document </title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="generator" content="editplus" />
    <meta name="author" content="JnKc" />
    <meta name="keywords" content="" />
    <meta name="description" content="" />
    <style type="text/css">
    *{font-size:12px;}
    </style>
    <script type="text/javascript">
    function Calculated_money(){
    var $ = document.all;
    var inall = new Array('price','Oil_content','money'),inyes = [],inno = [];
    for (var i in inall){
    var obj = $(inall[i]);
    obj.value = isNaN(obj.value)||obj.value.length==0?0:obj.value;
    if (obj.value==0){
    inno.push(inall[i]);
    } else{
    inyes.push(inall[i]);
    }
    }
    switch (inno.length){
    case 0:
    alert('不能全部填写,请将欲计算项改为“0”');
    return false;
    case 1:
    switch (inno[0]){
    case 'price':
    $('price').value = ($('money').value/$('Oil_content').value).toFixed(2);
    break;
    case 'Oil_content':
    $('Oil_content').value = ($('money').value/$('price').value).toFixed(2);
    break;
    case 'money':
    $('money').value = ($('price').value*$('Oil_content').value).toFixed(2);
    break;
    }
    break;
    default :
    return false;
    }
    }
    </script>
    </head>
    <body>
    <form action="apps.php?do=oil&ac=insert&tdo=in" method="post" name="add" id="add">
    单价:<input name="price" id="price"  type="text" style="width:120px" value="0" maxlength="3" onChange="Calculated_money()" />元,
    加油量:<input name="Oil_content" id="Oil_content"  type="text" style="width:120px" value="0" maxlength="3" onChange="Calculated_money()" />升,
    金额:<input name="money" id="money"  type="text" value="0" maxlength="4" style="width:120px" onChange="Calculated_money()" />元
    </form>
    </body>
    </html>
      

  9.   

    ps   既然你是要得到金额,为啥不将金额的文本框设定为只读呢,这样不是省很多麻烦,只要value1和value2变动才会变动
      

  10.   

    <input type='text' value='' id="value1" name="value1" class='nor'/> *
    <input type='text' value='' id="value2" name="value2" class='nor'/>  =
    <input type='text' value='' id="value3" name="value3" class='nor'/>
    <style>
    .fcs{
    border:1px solid red;
    }
    .nor{
    border:1px solid black;
    }
    .res{
    border:1px solid green;
    }
    </style>
    <script>
    var $ = function($){return document.getElementById($)}
    var $addEvent = document.all ? function(dom,ev,fn){dom.attachEvent('on'+ev,fn)}:function(dom,ev,fn,tof){dom.addEventListener(ev,fn,tof)}
    var c = [];
    $addEvent($('value1'),'keydown',function(event){
        var fn;
    $('value1').className = 'fcs';
    if(c[0] != 'value1')
    {
    c.push('value1');
    if(c.length >= 2){
    if(c[0] == 'value3'){
    tmp = $('value2');
    fn = function(){$('value2').value = ($('value3').value+0) / ($('value1').value+0)}

     }
    else{
    tmp = $('value3');
    fn = function(){$('value3').value = $('value2').value ? ($('value1').value * $('value2').value) : '';}
    }
    setTimeout(fn,100);
    tmp.className = 'res';
    c=[];
    }
    }
    //if(c.length >=2) c=[];})
    $addEvent($('value2'),'keydown',function(event){
        var fn;
    $('value2').className = 'fcs';
    if(c[0] != 'value2' )
    {
    c.push('value2');
    if(c.length >= 2){
    if(c[0] == 'value3'){
    tmp = $('value1');
    fn = function(){$('value1').value = ($('value3').value+0) / ($('value2').value+0)}
     }
    else{
    tmp = $('value3');
    fn = function(){$('value3').value = $('value1').value ? ($('value1').value * $('value2').value) : '';}
    }
    setTimeout(fn,100);
    tmp.className = 'res';
    c=[];
    }
    }
    },false)$addEvent($('value3'),'keydown',function(event){
    var fn;
    $('value3').className = 'fcs';
    if(c[0] != 'value3' )
    {
    c.push('value3');
    if(c.length >=2){
    if(c[0] == 'value2'){
    tmp = $('value1');
    fn = function(){$('value1').value = ($('value3').value+0) / ($('value2').value+0)}
     }
    else{
    tmp = $('value2');
    fn = function(){$('value2').value = ($('value3').value+0) / ($('value1').value+0)}
    }
    setTimeout(fn,100);
    tmp.className = 'res';
    c=[];
    }
    }},false)</script>