第一个数字是输入计算器中的运算符

时间:2018-04-03 13:09:24

标签: javascript jquery html css

在我的计算器代码中,我希望首先将一个数字作为输入,然后在该运算符之后,并且一次只能输入一个运算符。在输入中,首先必须采用数字或数字,如果输入运算符,不应该采取或显示。操作员,如+, - ,/,*,%,并且一次只能输入一个操作员。



document.getElementById("AC").onclick = function() {myFunction()};
    
    function myFunction() {
        document.getElementById("AC").innerHTML = "CE";
    }

      <center>
    
        <form name="calculator">
          <div class=" outline">
    
            <table style="margin-top:40px;">
              <tr>
                <td>
                  <input name="displayresult" id="display" class="cal-input" placeholder="0" disabled>
    			  
                </td>
              </tr>
            </table>
            <table border="0px" cellspacing="10px" style="margin-top:5px;">
    
              <tr>
                <td name="left" value="(" onclick="calculator.display.value += '('" class="cal-top">(</td>
                <td name="right" value=")" onclick="calculator.display.value += ')'" class="cal-top"> )</td>
                <td class="operator cal-top" name="percent" value="%" onclick="calculator.display.value += '%'">%</td>
                <td id="clear" name="clear" value="c" onclick="str = calculator.display.value.slice(0, -1); calculator.display.value = str" class=" cal-top"><font size="2" id="AC">AC</font></td>
    
              </tr>
    
              <tr>
                <td name="seven" value="7" onclick="calculator.display.value += '7'" class="cal-number">7</td>
                <td name="eight" value="8" onclick="calculator.display.value += '8'" class="cal-number">8</td>
                <td name="nine" value="9" onclick="calculator.display.value += '9'" class="cal-number">9</td>
                <td class="operator cal-top" name="div" value="/" onclick="calculator.display.value += '/'">/</td>
              </tr>
    
              <tr>
                <td name="four" value="4" onclick="calculator.display.value += '4'" class="cal-number">4</td>
                <td name="five" value="5" onclick="calculator.display.value += '5'" class="cal-number">5</td>
                <td name="six" value="6" onclick="calculator.display.value += '6'" class="cal-number">6</td>
                <td class="operator cal-top" name="times" value="*" onclick="calculator.display.value += '*'">*</td>
              </tr>
    
              <tr>
                <td name="one" value="1" onclick="calculator.display.value += '1'" class="cal-number">1</td>
                <td name="two" value="2" onclick="calculator.display.value += '2'" class="cal-number">2</td>
                <td name="three" value="3" onclick="calculator.display.value += '3'" class="cal-number">3</td>
                <td class="operator cal-top" name="minus" value="-" onclick="calculator.display.value += '-'">-</td>
              </tr>
    
              <tr>
                <td name="zero" value="0" onclick="calculator.display.value += '0'" class="cal-number">0</td>
                <td name="decimal" value="." onclick="calculator.display.value += '.'" class="cal-number">.</td>
                <td name="result" value="=" onclick="calculator.display.value = eval(calculator.display.value)" class="cal-result"><b>=</b></td>
                <td class="operator cal-top" name="plus" value="+" onclick="calculator.display.value += '+'">+</td>
              </tr>
    
            </table>
          </div>
        </form>
    
    
      </center>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

您可以让所有符号上的onclick调用函数,而不是将文本放在框中:

checkIfValid('x')

其中 x =特定<td>元素的符号,例如:

<td class="operator cal-top" name="percent" value="%" onclick="checkIfValid('%')">%</td>

该功能可以判断是否将文本放入框中。

function checkIfValid(symbol) {
  if (calculator.display.value !== '') {
    var lastDigit = calculator.display.value.slice(-1);
    if (lastDigit == '%' || lastDigit == '/' || lastDigit == '*' || lastDigit == '-' || lastDigit == '+') {
      return false;
    } else {
      if (symbol == '=') {
        calculator.display.value = eval(calculator.display.value);
      } else {
        calculator.display.value += symbol;
      }
    }
  }
}

&#13;
&#13;
function checkIfValid(symbol) {
  if (calculator.display.value !== '') {
    var lastDigit = calculator.display.value.slice(-1);
    if (lastDigit == '%' || lastDigit == '/' || lastDigit == '*' || lastDigit == '-' || lastDigit == '+') {
      return false;
    } else {
      if (symbol == '=') {
        calculator.display.value = eval(calculator.display.value);
      } else {
        calculator.display.value += symbol;
      }
    }
  }
}
&#13;
<center>

  <form name="calculator">
    <div style=" width: 200px;height: 250px;border: 1px solid #D0CECE;">

      <table style="margin-top:20px;">
        <tr>
          <td>
            <input name="displayresult" id="display" class="cal-input" placeholder="0" disabled>
          </td>
        </tr>
      </table>
      <table border="0px" cellspacing="10px" style="margin-top:5px;">

        <tr>
          <td name="left" value="(" onclick="calculator.display.value += '('" class="cal-top">(</td>
          <td name="right" value=")" onclick="checkIfValid(')')" class="cal-top"> )</td>
          <td class="operator cal-top" name="percent" value="%" onclick="checkIfValid('%')">%</td>
          <td id="clear" name="clear" value="c" onclick="str = calculator.display.value.slice(0, -1); calculator.display.value = str" class=" cal-top">CE</td>

        </tr>

        <tr>
          <td name="seven" value="7" onclick="calculator.display.value += '7'" class="cal-number">7</td>
          <td name="eight" value="8" onclick="calculator.display.value += '8'" class="cal-number">8</td>
          <td name="nine" value="9" onclick="calculator.display.value += '9'" class="cal-number">9</td>
          <td class="operator cal-top" name="div" value="/" onclick="checkIfValid('/')">/</td>
        </tr>

        <tr>
          <td name="four" value="4" onclick="calculator.display.value += '4'" class="cal-number">4</td>
          <td name="five" value="5" onclick="calculator.display.value += '5'" class="cal-number">5</td>
          <td name="six" value="6" onclick="calculator.display.value += '6'" class="cal-number">6</td>
          <td class="operator cal-top" name="times" value="*" onclick="checkIfValid('*')">*</td>
        </tr>

        <tr>
          <td name="one" value="1" onclick="calculator.display.value += '1'" class="cal-number">1</td>
          <td name="two" value="2" onclick="calculator.display.value += '2'" class="cal-number">2</td>
          <td name="three" value="3" onclick="calculator.display.value += '3'" class="cal-number">3</td>
          <td class="operator cal-top" name="minus" value="-" onclick="checkIfValid('-')">-</td>
        </tr>

        <tr>
          <td name="zero" value="0" onclick="calculator.display.value += '0'" class="cal-number">0</td>
          <td name="decimal" value="." onclick="calculator.display.value += '.'" class="cal-number">.</td>
          <td name="result" value="=" onclick="checkIfValid('=')" class="cal-result"><b>=</b></td>
          <td class="operator cal-top" name="plus" value="+" onclick="checkIfValid('+')">+</td>
        </tr>

      </table>
    </div>
  </form>


</center>
&#13;
&#13;
&#13;