指定值“undefined”不是有效数字

问题描述 投票:1回答:3

我正在学习关于公司库存的考试。我想我可以帮自己一个忙,在学习这门考试的同时学习一些关于编码的新知识。通常情况下我只在我的公司用很少的javascript做前端。

我要做的是设置一个包含2个输入行的表。

第1行:来自我的输入第2行:输入的总和

我放入一个按钮,该按钮应该将我在第1行输入的值赋予第2行中的另一个字段。

当我的输入类型为数字即时获取:指定值“未定义”不是有效数字。该值必须与以下正则表达式匹配: - ?(\ d + | \ d +。\ d + | |。\ d +)([eE] [ - +]?\ d +)?

当我的输入类型是文本im得到:undefined

我很确定我的功能有些不对劲,但我无法弄明白,当我搜索我的问题时,我只能找到更复杂的情况,我也不明白。

提前感谢任何帮助:)

<script>
    function test() {
        var x = document.getElementById("1").value;
        document.getElementById("ro").value = x;
    }
</script>
</head>
<body>
<table>
    <tr><td><b><button onclick="test()">test</button></b></td></tr>
    <tr><td>&nbsp;</td></tr>
    <tr>
        <td>
            <div id="flex-table">
                    <table id="names">
                    <!--Names--><!--Names-->
                        <caption>A: Vermögen</caption>
                            <tr><th>I. Anlagevermögen</th></tr>
                            <tr><td class="first">Grundstücke</td></tr>
                            <tr><td class="second">Gernotstraße</td> </tr>
                    </table>
                    <table id="input">
                    <!--Input--><!--Input-->
                        <caption>&nbsp;</caption>
                            <tr><th><p>€</p></th></tr>
                            <tr><td>&nbsp;</td></tr>
                            <tr><td><form id="1"><input type="number" value="0"></form></td></tr>
                    </table>
                    <table id="values">
                    <!--Values--><!--Values-->
                        <caption>&nbsp;</caption>
                            <tr><th><p>€</p></th></tr>
                            <tr><td>&nbsp;</td></tr>
                            <tr><td><input id="ro" type="number"value="0" readonly></td></tr>
                    </table>
                </div>
        </td>
    </tr>
</table>
javascript html5 input datatable getelementbyid
3个回答
1
投票

错误

  1. 首先,id不仅仅是数字。所以你必须混合一些字符串
  2. document.getElementById("string1")放在form而不是input.so添加id输入而不是form

<script>
  function test() {
    var x = document.getElementById("string1").value;
    document.getElementById("ro").value = x;
  }
</script>


<body>
  <table>
    <tr>
      <td><b><button onclick="test()">test</button></b></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>
        <div id="flex-table">
          <table id="names">
            <!--Names-->
            <!--Names-->
            <caption>A: Vermögen</caption>
            <tr>
              <th>I. Anlagevermögen</th>
            </tr>
            <tr>
              <td class="first">Grundstücke</td>
            </tr>
            <tr>
              <td class="second">Gernotstraße</td>
            </tr>
          </table>
          <table id="input">
            <!--Input-->
            <!--Input-->
            <caption>&nbsp;</caption>
            <tr>
              <th>
                <p>€</p>
              </th>
            </tr>
            <tr>
              <td>&nbsp;</td>
            </tr>
            <tr>
              <td>
                <form><input id="string1" type="number" value="0"></form>
              </td>
            </tr>
          </table>
          <table id="values">
            <!--Values-->
            <!--Values-->
            <caption>&nbsp;</caption>
            <tr>
              <th>
                <p>€</p>
              </th>
            </tr>
            <tr>
              <td>&nbsp;</td>
            </tr>
            <tr>
              <td><input id="ro" type="number" value="0" readonly></td>
            </tr>
          </table>
        </div>
      </td>
    </tr>
  </table>

1
投票

你正在读取没有价值的form的价值。你可能想从input元素中读取值。

function test() {
  var x = document.getElementById("1").value;
  document.getElementById("ro").value = x;
}
<table>
  <tr>
    <td><b><button onclick="test()">test</button></b></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>
      <div id="flex-table">
        <table id="names">
          <caption>A: Vermögen</caption>
          <tr>
            <th>I. Anlagevermögen</th>
          </tr>
          <tr>
            <td class="first">Grundstücke</td>
          </tr>
          <tr>
            <td class="second">Gernotstraße</td>
          </tr>
        </table>
        <table id="input">
          <caption>&nbsp;</caption>
          <tr>
            <th>
              <p>€</p>
            </th>
          </tr>
          <tr>
            <td>&nbsp;</td>
          </tr>
          <tr>
            <td>
              <input id="1" type="number" value="0">
            </td>
          </tr>
        </table>
        <table id="values">
          <caption>&nbsp;</caption>
          <tr>
            <th>
              <p>€</p>
            </th>
          </tr>
          <tr>
            <td>&nbsp;</td>
          </tr>
          <tr>
            <td><input id="ro" type="number" value="0" readonly></td>
          </tr>
        </table>
      </div>
    </td>
  </tr>
</table>

1
投票

您的第二张表应按以下方式更正。 id值“1”表示表单元素而不是输入元素。

<table id="input">
     <!--Input--><!--Input-->
     <caption>&nbsp;</caption>
     <tr><th><p>€</p></th></tr>
     <tr><td>&nbsp;</td></tr>
     <tr><td><form><input type="number" value="0" id="1"></form></td></tr>
</table>
© www.soinside.com 2019 - 2024. All rights reserved.