如何将表单输入编号用作Javascript变量?

时间:2017-01-08 20:11:57

标签: javascript html

<form>
  <input type="text" name="" value="">
</form>
//for loop used to calculate balance after payment(x) and interest
// the variable I want defined from the form input box
for(i = 6000; i>=10; i = i * (1+0.2/26)-x){
    var x = 155;
    document.write("Balance " + " $" + i + "<br/><br/>");
}

3 个答案:

答案 0 :(得分:0)

您可以在input元素中附加一个伪类,然后像下面这样插入值:

<input type="text" name="" value="" class="js-interest">

<script>
    var ele = document.getElementsByClassName("js-interest")[0];
    var value = parseFloat(ele.value);
</script>

答案 1 :(得分:0)

您可以尝试document.getElementById('input_id').value,然后使用parseInt将其作为整数获取,如下所示:

var x = parseFloat(document.getElementsByName('number_box').value);

此外,html必须如下所示:

<form>
    <input type="text" name="number_box" value="">
</form>

可选择代替document.getElementsByName(),您可以使用document.getElementById()document.getElementsByClassName()

答案 2 :(得分:0)

<强>更新 如果我没错?

    for(i = 6000; i>=10; i = i * (1+0.2/26)-x){
       var x = 155;
       document.write("Balance " + " $" + i + "<br/><br/>");
    }

看起来你正在写一个for循环中的DOM,不要计算你的ANS,然后写入DOM。

另外,不要从循环内的输入读取数据。 (您将反复阅读和编写不好的数据。)

你的for循环for(i = 6000; i>=10; i = i * (1+0.2/26)-x)正在使用某个表达式i = i * (1+0.2/26)-x递增(确保它绑定到条件并且它不会使循环无限)

您可以使用以下代码从输入字段中选择值

x = parseInt(document.querySelector('form input[name="my_number"]').value);

document.querySelector它使用CSS样式选择器。因此,要选择表单中的输入字段。我在表单中添加了一个名称name="my_number"

<input type="text" name="my_number" value="">

现在使用css选择器form input[name="my_number"],它选择名称为"my_number"的表单中的输入字段

将返回输入元素的整个Query选择器是

document.querySelector('form input[name="my_number"]')

现在要获取输入字段的值,您必须读取输入字段的value属性。

document.querySelector('form input[name="my_number"]').value

这会将您的输入值作为字符串返回。

现在,我们需要将该字符串值解析为Integer格式。

我们这样做,(使用parseInt

parseInt(document.querySelector('form input[name="my_number"]').value)

我已在名为calc

的函数中添加了代码
  function calc() {
     var x = parseInt(document.querySelector('form input[name="my_number"]').value);

    var ans= calculate_your_value(x);


    document.write("Balance " + " $" + ans + "<br/><br/>");
}

我从一个名为get calculated answer的函数中获取了答案,并且这样做很好。

function calculate_your_value(x){
  // calculate the ans the for loop seems buggy
  //for (i = 6000; i >= 10; i = i * (1 + 0.2 / 26) - x) {}

  return x; //dummy ans
}

提交表单时会调用它。

为此,我在您的表单标记上添加了onsubmit='calc()'

<form onsubmit='calc()'>

此外,我已添加此功能,当您按下输入时提交表单(只是为了好玩):)

document.onkeydown=function(){
    if(window.event.keyCode=='13'){
        calc();
    }
}

它只是按下按键并检查它是否为回车键(键码为13)

并调用相同的calc函数。

&#13;
&#13;
function calc() {
  var x = parseInt(document.querySelector('form input[name="my_number"]').value);
 
  var ans= calculate_your_value(x);

  
  document.write("Balance " + " $" + ans + "<br/><br/>");
}

document.onkeydown = function() {
  if (window.event.keyCode == '13') {
    calc();
  }
}

function calculate_your_value(x){
  // calculate the ans the for loop seems buggy
  //for (i = 6000; i >= 10; i = i * (1 + 0.2 / 26) - x) {}
  
  return x; //dummy ans
}
&#13;
<form onsubmit='calc()'>
  <input type="text" name="my_number" value="">
  <input type="submit" id="submitbtn" />
</form>
&#13;
&#13;
&#13;