使用单个文本框添加数字?

时间:2015-07-15 08:04:31

标签: javascript

任何人都可以帮我解决如何从单个文本框中获取或读取两个值。 即,当我读取第一个值时,它应该存储在字符串str1中,当单击操作符按钮时,文本框将被清除但必须知道单击了哪个操作符按钮并且shld等待接受第二个值。第二个值存储在str2中。 这就像一个简单的计算器,我们在一个文本框中输入许多数字。 谢谢 这是我的代码:

window.onload = function () {
       var value1 = "", value2 = "", result="";
        document.getElementById('btnone').addEventListener('click', function () {
            document.getElementById('textBox').value = document.getElementById('textBox').value + document.getElementById('btnone').value;
            value1 = document.getElementById('textBox').value;
        });
        document.getElementById('btntwo').addEventListener('click', function () {
            document.getElementById('textBox').value = document.getElementById('textBox').value + document.getElementById('btntwo').value;
            value2 = document.getElementById('textBox').value;
        });
        document.getElementById('btnadd').addEventListener('click', function () {
            document.getElementById('textBox').value = document.getElementById('textBox').value + document.getElementById('btnadd').value;
        });
        document.getElementById('btneql').addEventListener('click', function () {

           result = value1 + value2;

        }); 

2 个答案:

答案 0 :(得分:0)

您可以使用Jquery

执行此操作
  1. 通过 def other_process if attr MyModel.some_process rake "my:rake:task" command "/usr/bin/my_great_command" end end every 3.hours do MyModel.other_process end 事件获取您输入的值click()

  2. 增加金额

  3. 清除您的输入$('.YourInput').val()

    see Fiddle

    更新

  4. 使用Javascript: 如果用户单击数字按钮:0-9,该值将与前一个值连接,如果用户单击$('.YourInput').val("")操作,文本字段中的给定值将被记忆,直到用户给出新值并且点击plus 操作。 Fiddle

    equal
    var value1=value2=result=0;
    function calc(val) {
        value1= parseInt(document.getElementById(val).value);
        document.getElementById("textBox").value=document.getElementById("textBox").value+value1;
        value1=parseInt(document.getElementById("textBox").value);
    }
    function DoSumm(){
        document.getElementById("textBox").value="";
        value2=value1;
        value1=0;
    }
    function FindResult(){
        result=value1+value2;
        alert(result);
        document.getElementById("textBox").value=result;
    }

答案 1 :(得分:0)

您应该发布相关的HTML,否则我们必须对其进行逆向工程。无论如何,也许你有类似的东西:

<form>
  <input type="button" id="btnone" name="btnone" value="0">
  <br>
  <textarea name="textBox"></textarea>
  <br>
  <input type="button" id="btntwo" name="btntwo" value="0">
  <br>
  <input type="button" id="btnadd" name="btnadd" value="Add">
  <br>
  <input type="button" id="btneql" name="btneql" value="Equal">
  <br>
  <input type="text" readonly name="result">
</form>

在你的功能中你有:

window.onload = function () {
  var value1 = "", value2 = "", result="";

变量在javascript中没有类型,因此除非您打算实际使用它,否则将它们初始化为值是没有意义的,所以:

  var value1, value2, result;

然后有:

  document.getElementById('btnone').addEventListener('click', function () {
    document.getElementById('textBox').value = document.getElementById('textBox').value + document.getElementById('btnone').value;
    value1 = document.getElementById('textBox').value;
  });

这么少的工作代码!如果使用 addEventListener 添加侦听器,则该元素将在函数中 this 。此外,您可以使用表单控件的名称将它们作为表单的命名属性引用,所以:

  var textBox = this.form.textBox;
  textBox.value = textBox.value + this.value;

你没有说 btnone 的值是什么(我假设它为零),但无论如何它都是一个字符串,文本框的值也是如此。所以你需要将它们转换为Numbers,否则+会进行连接而不是添加。简单的方法是使用一元+运算符,所以:

  textBox.value = +textBox.value + +this.value;

然后你做:

  value1 = document.getElementById('textBox').value;

所以 value1 再次是一个字符串,所以按照其他顺序执行:

  value1 = +textBox.value + +this.value;
  textBox.value = value1;

继续......代码看起来很不稳定,我真的不知道以下是否有你想要做的事情(特别是 btnadd 元素上的监听器),至少它“作品”:

window.onload = function () {
  var value1 = "", value2 = "", result="";

  document.getElementById('btnone').addEventListener('click', function () {
    var textBox = this.form.textBox;
    value1 = +textBox.value + +this.value;
    textBox.value = value1;
  });

  document.getElementById('btntwo').addEventListener('click', function () {
    var textBox = this.form.textBox;
    value2 = +textBox.value + +this.value;
    textBox.value = value2;
  });

  document.getElementById('btnadd').addEventListener('click', function () {
    var textBox = this.form.textBox;
    textBox.value = value1 + value2;
  });

  document.getElementById('btneql').addEventListener('click', function () {
    result = value1 + value2;
    this.form.result.value = result;
  });
};