do - while循环(javascript)的问题

时间:2014-10-06 08:18:56

标签: javascript do-while

我正在尝试创建一个循环,当用户按下按钮时,屏幕上会显示“+”符号,但只显示一次,但似乎无效。我希望它在单击按钮时显示“+”符号,然后再次按下该按钮时我不希望它显示,除非我将a的值更改为true。有人可以帮忙吗?

下面的示例只是我的整个代码我正在测试的目的是在文本字段中只显示一次加号

<!DOCTYPE html>
<html>

<head>
    <script>
    function one()
        {document.frm.result.value +="1";}

        function three()
        {
         document.frm.result.value +="3";
        }

        function plus()
        {
            do{
                var a;
                document.frm.result.value = "+";

                var a = false;
               }while(a == 'true')
               }

        function evaluo()
        {
         var evalu = eval(document.frm.result.value);

            document.frm.result.value = evalu;
        }

    </script>
</head>
<body>


    <input type="button" value="2" name="2" onclick="dis()" id="test">
    <input type="button" value="3" name="3" onclick="three()" id="test3">
    <input type="button" value="+" name="plus" onclick="plus()" id="test2">
    <input type="button" value="evalu" onclick="evaluo()" id="e">


    <form name="frm">
    <input name="result">
    <div class="cal">
    <div id="left">
        <input type="text" value="" id="test1">

    <div id="bt1">1</div>
    <br>
    <div id="bt2">2</div>
    </div>

    <div id="cen">
        <div id="bt1">3</div>
    <br>
    <div id="bt2">4</div>
    </div>

    </div>

    <div id="right">
        <div id="bt1" onclick="one()">35</div>
    <br>
    <div id="bt2">4</div>
    </div>

    </div>

    </div>
</form>

</body>

1 个答案:

答案 0 :(得分:0)

循环体只执行一次。之后控制流程将转移到此后的任何代码或调用函数。你可能不希望为此使用循环,只需要一个document.frm.result.value += "+";的函数,并在点击按钮时调用它。

例如,如果您的函数被调用displayPlus,那么您可以为您的按钮添加onclick属性,如下所示:<button onclick="displayPlus()">

编辑:听起来你想要一种方法来有条件地决定是否在点击按钮时显示另一个加号。如果你有逻辑可以确定是否应该在按下按钮时完成,那么这可以包含在函数中。例如,如果您只想在输入的前一个字符不是加号时添加另一个字符,那么此方法将起作用。

否则,您可以使用全局布尔变量,并在单击加号按钮时检查其值,以确定是否打印另一个加号。