【问题标题】:Calculator input and output fieldset计算器输入和输出字段集
【发布时间】:2017-05-03 16:36:32
【问题描述】:

光环

我已经用(CSS、HTML、JavaScript)构建了一个计算器。 问题是我无法在(Form.input)上显示按钮, 以及 (Form.Output) 中的答案 javascript 代码应该可以工作,但它什么也没做。 有什么建议可以解决这个问题吗?

$(document).ready(function() {
    $('.keys button').on('click', function() {
        var value = $(this).value();
        $('.display.input').append(value);
    });

    $('button[name="="]').on('click', function() {

    });

    });
/* reset */
*  {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    -ms-box-sizing: border-box;
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    font-size: 5vw;
}

html, body {
    width: 100%;
    margin: 0;
    padding: 0;
}


/* document */
body {
    font-family: "URW Gothic L", "Helvetica", "Arial", sans-serif;
    /* Background source:
     * http://www.texturex.com/Leather-Textures/black+leather+texture+large+close+up+grain+material+dark+fabric+stock+photo.jpg.php
     * Free offered by Free Leather Textures */
    background: url('../../../media/black-leather-texture.jpg');
}

.display {
    border: 0.2rem solid gray;
    border-radius: 0.5rem;
    background: black;
    padding: 0.5rem;
    width: 100%;
    display: block;
}
.display > output {
    display: block;
    height: 1.5rem;
    margin: 0;
    color: aqua;
}

form {
    width: 100%;
    padding: 0.5rem;
}

fieldset {
    border: none;
    margin: 0;
    font-size: 0;
}
fieldset > button {
    width: 20%;
    margin: 3.3%;
    padding: 2vw;
}
fieldset > button:nth-child(4n) {
    margin-right: 0;
}
fieldset > button:nth-child(4n+1) {
    margin-left: 0;
}

button {
    box-shadow: 0 0 0.5rem black;
    border: none;
    border-radius: 0.5rem;
    text-align: center;
    vertical-align: middle;
    margin: 0;
    font-weight: bold;
    font-size: 1.5rem;
}
output {
    font-size: 1rem;
}


button.number, button.command {
    background: white;
}
button.number:active, button.command:active {
    background: rgb(230, 230, 230);
    box-shadow: inset 0 0 0.5rem black;
}
button.operator {
    box-shadow: 0 0 0.5rem rgb(80,80, 80);
    background: black;
    color: white;
}
button.operator:active {
    background: rgb(60, 60, 60);
    box-shadow: inset 0 0 0.5rem black;
}

#key-c {
    background: red;
    color: white;
}
#key-c:active {
    background: darkred;
}
button:focus {
    box-shadow: 0 0 0.5rem deepskyblue;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Casio Mini</title>
        <link rel="stylesheet" href="styles/style.css" />
        <script src="scripts/calculator.js"></script>
    </head>
    <body>
        <form>
            <fieldset class="display">
                <output name="output" id="output" class="output"></output>
                <output name="input" id="input" class="input"></output>
            </fieldset>

            <fieldset>
                <button type="button" name="key-0" id="key-0" class="number" value="0">0</button>
                <button type="button" name="key-1" id="key-1" class="number" value="1">1</button>
                <button type="button" name="key-2" id="key-2" class="number" value="2">2</button>
                <button type="button" name="key-+" id="key-+" value="+" class="operator">&plus;</button>

                <button type="button" name="key-3" id="key-3" class="number" value="3">3</button>
                <button type="button" name="key-4" id="key-4" class="number" value="4">4</button>
                <button type="button" name="key-5" id="key-5" class="number" value="5">5</button>
                <button type="button" name="key--" id="key--" value="-" class="operator">&minus;</button>

                <button type="button" name="key-6" id="key-6" class="number" value="6">6</button>
                <button type="button" name="key-7" id="key-7" class="number" value="7">7</button>
                <button type="button" name="key-8" id="key-8" class="number" value="8">8</button>
                <button type="button" name="key-*" id="key-*" value="*" class="operator">&lowast;</button>

                <button type="button" name="key-9" id="key-9" class="number" value="9">9</button>
                <button type="button" name="key-c" id="key-c" class="command">C</button>
                <button type="button" name="key-=" id="key-=" class="command">&equals;</button>
                <button type="button" name="key-/" id="key-/" value="/" class="operator">&divide;</button>
            </fieldset>
        </form>
    </body>
</html>

【问题讨论】:

  • 请使用 jsfiddle 之类的工具从您的代码中创建一个可执行示例。

标签: javascript css calculator


【解决方案1】:

您的代码中几乎没有问题。

这里是一个工作示例:https://jsfiddle.net/871tvdrc/4/

其实jQuery中不存在.value(),它是.val()

那么你的选择器错了。

这里是正确的 JS:

$(document).ready(function() {
  $('.keys button').on('click', function() {
    var value = $(this).val();
    console.log(value);
    $('.display .input').append(value);
  });

  $('button[name="="]').on('click', function() {

  });

});

这里是正确的 HTML:

<form>
  <fieldset class="display">
    <output name="output" id="output" class="output"></output>
    <output name="input" id="input" class="input"></output>
  </fieldset>

  <fieldset class="keys">
    <button type="button" name="key-0" id="key-0" class="number" value="0">0</button>
    <button type="button" name="key-1" id="key-1" class="number" value="1">1</button>
    <button type="button" name="key-2" id="key-2" class="number" value="2">2</button>
    <button type="button" name="key-+" id="key-+" value="+" class="operator">&plus;</button>

    <button type="button" name="key-3" id="key-3" class="number" value="3">3</button>
    <button type="button" name="key-4" id="key-4" class="number" value="4">4</button>
    <button type="button" name="key-5" id="key-5" class="number" value="5">5</button>
    <button type="button" name="key--" id="key--" value="-" class="operator">&minus;</button>

    <button type="button" name="key-6" id="key-6" class="number" value="6">6</button>
    <button type="button" name="key-7" id="key-7" class="number" value="7">7</button>
    <button type="button" name="key-8" id="key-8" class="number" value="8">8</button>
    <button type="button" name="key-*" id="key-*" value="*" class="operator">&lowast;</button>

    <button type="button" name="key-9" id="key-9" class="number" value="9">9</button>
    <button type="button" name="key-c" id="key-c" class="command">C</button>
    <button type="button" name="key-=" id="key-=" class="command">&equals;</button>
    <button type="button" name="key-/" id="key-/" value="/" class="operator">&divide;</button>
  </fieldset>
</form>

【讨论】:

  • 感谢您的快速回复。
  • 我确实复制了 JavaScript 代码和 HTML 代码,但 Steel 无法正常工作。我不得不说它们分别位于单独的文件中。1 个用于 HTML,1 个用于 CSS,1 个用于 JS。如果仅在 1 个字段集中使用输出和输入,则可以,但我必须输出和输入,即什么都没有发生。
  • 您是否为所有元素添加了正确的类?你能把你的完整代码贴给我吗?您发布的示例在完成我发布的更改之前完全运行良好,所以我现在无法理解您的实际代码
  • jsfiddle.net/#&togetherjs=OeN49RzLth,我使用了你的 cod 和我的代码
  • 对不起,我的错
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-08-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-10
  • 2013-06-02
  • 1970-01-01
相关资源
最近更新 更多