0

次のように3つの入力が必要なフォームがあります。

  <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で3つのフィールドに直接アクセスできるようにすることだけです。他の場所に情報を渡す必要はありません。

誰かが私を正しい方向に向けることができますか?入力が1つあるが、複数ではない例を読みました。

  <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">

もう1つ注意しなければならないのは、value属性が文字列であるため、2つの値を加算すると、それらを合計するのではなく連結するということです。

代わりに試してください

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

また、最小値からiを削除し、最大値から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 に答える