0

我有一个需要三个输入的表单,如下所示:

  <form>
    <input name="mn" 
           type="number"
           min="1"
           value="1">
    <input name="mx" 
           type="number"
           min="2"
           value="10">
    <input name="step" 
           type="number"
           min="1"
           value="1">
    <input onclick="myfunc()"
           type="submit"
           value="calculate">
  </form>

我所需要的只是能够直接在 javascript 中访问这三个字段。我不需要将信息传递到其他任何地方。

谁能指出我正确的方向?我已经阅读了只有一个输入但没有多个输入的示例。

  <script type="text/javascript">
    function myfunc() {
    var mn = document.getElementsByName("mn")
    var mx = document.getElementsByName("mx")
    var step = document.getElementsByName("step")
    alert((mn + mx) / step)
    }
  </script>
4

4 回答 4

2

给你的表格一个像这样的ID

<form id="myForm">

需要注意的另一件事是该value属性是一个字符串,因此添加两个值会将它们连接起来而不是相加。

试试吧

var frm = document.forms["myForm"];

var _mn = parseInt( frm["mn"].value );
var _mx = parseInt( frm["mx"].value );
var _step = parseInt( frm["step"].value );

var result = ( _mn + _mx ) / _step;
于 2012-12-16T23:51:46.313 回答
0

我会先给每个输入一个 id 然后我可以使用:

var min = document.getElementById('mn')

等等。要访问您只需调用的值

min.value

同样,从 min 中删除 i 和从 max 中删除 a 也是没有意义的。这不是优化的,只是难以阅读和理解。

于 2012-12-16T23:45:17.810 回答
0

如果您需要访问输入的值,请将您的代码更改为:

function myfunc() {
  var mn = document.getElementsByName("mn")[0];
  var mx = document.getElementsByName("mx")[0];
  var step = document.getElementsByName("step")[0];
  // you may need to validate your values here, like step.value != 0
  alert((mn.value + mx.value) / step.value)
}
于 2012-12-16T23:45:21.700 回答
0

尝试这个:

  <script type="text/javascript">
    function myfunc() {
    var mn = document.getElementsByName("mn")[0].value;
    var mx = document.getElementsByName("mx")[0].value;
    var step = document.getElementsByName("step")[0].value;
    var top = mn / mx;
    alert(top / step);
    }
  </script>
于 2012-12-16T23:47:28.913 回答