我蛋疼的是+和=,是一个键,不能通过键值区别,但是又不知道怎么判断有没有同时按下shift,我查了点书也没看到怎么办???求解。。

解决方案 »

  1.   

    shift和=号一起的键码是43
    单独=号的键码是61
      

  2.   

    event.shiftKey 判断是否按住了shift键
      

  3.   

    蛋疼?那你要注意保养了,比这更让你蛋疼的问题多着呢。
    <script type="text/javascript">
    function calcu(e){
    var srcEl = e.target||e.srcElement;
    var reg   = /^(.*?)=\s*(\d+)?$/;
    var input = srcEl.value;
    var match = input.match(reg);
    var expr;
    var result;

    //若没有输入完整或已经计算过了,不再处理
    expr   = (match && match[1])||"";
    result = (match && match[2])||"";
    if( expr && !result ){
    try{
    result = eval("(" + expr + ")");
    srcEl.value = expr + "=" + result;
    }catch(e){}
    }
    }
    </script><input type="text" id="txtInput" value="" 
       oninput="calcu(event)"  
       onpropertychange="calcu(event)"/>
      

  4.   

    这小功能蛮有意思,优化下
    <script type="text/javascript">
    function calcu(e){
    var srcEl = e.target||e.srcElement;
    var reg   = /^(.*?)=\s*(\d+)?$/;
    var input = srcEl.value;
    var match = input.match(reg);
    var expr, result, calcResult="";

    //若没有输入完整或已经计算过了,不再处理
    expr  = (match && match[1])||"";
    result = (match && match[2])||"";

    //若表达式没有输出入完,退出
    if( !expr ) return;

    //若输入的表达式计算错误,退出
    try{
    calcResult = eval("(" + expr + ")");
    }catch(e){
    return;
    }

    //若没有计算过,或计算过的记过已经不对,则重新计算并赋值
    if( !result || result != calcResult ){
    try{
    srcEl.value = expr + "=" + calcResult;
    }catch(e){}
    }
    }
    </script><input type="text" id="txtInput" value="" 
       oninput="calcu(event)"  
       onpropertychange="calcu(event)"/>
       
      

  5.   

    整理下注释
    <script type="text/javascript">
    function calcu(e){
    var srcEl = e.target||e.srcElement;
    var reg   = /^(.*?)=\s*(\d+)?$/;
    var input = srcEl.value;
    var match = input.match(reg);
    var expr, result, calcResult; expr     = (match && match[1])||"";
    result    = (match && match[2])||"";
    calcResult = "";

    //若表达式没有输出入完,退出
    if( !expr ) return;

    //若输入的表达式计算错误,退出
    try{
    calcResult = eval("(" + expr + ")");
    }catch(e){
    return;
    }

    //若没有计算过,或计算过的值已经不对,则重新计算并赋值
    if( !result || result != calcResult ){
    try{
    srcEl.value = expr + "=" + calcResult;
    }catch(e){}
    }
    }
    </script><input type="text" id="txtInput" value="" 
       oninput="calcu(event)"  
       onpropertychange="calcu(event)"/>
       
      

  6.   

    function keypress(evt){
            var evnt=evt?evt:window.event;
            if(evnt.keyCode==61){
            var result=eval(document.getElementById("Text1").value);
                    document.getElementById("Text1").value+=result;
            }
    }document.onkeypress=keypress;我这么写的出来时12+214=
    那个=号怎么弄到前面去。。