1
votes

La valeur spécifiée "non définie" n'est pas un nombre valide

J'apprends pour un examen qui porte sur les inventaires des entreprises. J'ai pensé que je pourrais me rendre service et apprendre quelque chose de nouveau sur le codage tout en apprenant pour ces examens. Normalement, je n'utilise que très peu de javascript dans mon entreprise.

Ce que j'essaie de faire, c'est de créer une table avec 2 lignes d'entrée.

Ligne 1: Entrée de moi Ligne 2: Sommes de mes entrées

J'ai mis un bouton qui devrait donner la valeur que j'entre à la ligne 1 à un autre champ de la ligne 2.

Quand mon type d'entrée est le nombre im obtenir ceci: La valeur spécifiée "non définie" n'est pas un nombre valide. La valeur doit correspondre à l'expression régulière suivante: -? (\ D + | \ d +. \ D + |. \ D +) ([eE] [- +]? \ D +)?

Lorsque mon entrée est saisie est-ce que le texte que je reçois: undefined

Je suis sûr que quelque chose ne va pas dans ma fonction, mais je ne peux pas le comprendre et lorsque je recherche mon problème, je ne trouve que des cas plus complexes que je Je ne comprends pas.

Merci d'avance pour toute aide :)

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


2 commentaires

Votre identifiant doit être attribué à un élément d'entrée, pas au formulaire lui-même.


oh je vois que c'était stupide, ça marche maintenant. Merci beaucoup!


3 Réponses :


1
votes

  • La première chose que id n'est pas seulement numérique. donc vous devez mélanger avec une chaîne
  • Et document.getElementById ("string1") est placé avec form pas une entrée.Ajoutez donc un identifiant à l'entrée au lieu de 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>

  • 3 commentaires

    merci beaucoup, c'était une erreur stupide mais pouvez-vous m'expliquer ce que vous voulez dire avec la partie , je pense que peu importe ce que vous choisissez comme identifiant ou le fait-il?


    oui n'a pas d'importance.Vous pourriez définir n'importe quoi comme identifiant.Mais ce n'est pas une bonne pratique.À l'avenir, plus de non de codage et de variable.il sera plus déroutant et complexe.Utilisez un nom associé de l'élément d'activité, par exemple : input get username set id = "username" . la définition des variables et des noms est l'une des tâches les plus importantes du codage


    ok je vois, mieux mettre en œuvre les bonnes habitudes avant de s'habituer aux mauvaises. Merci prasanth :)



    1
    votes

    Vous lisez la valeur de form , qui n'a aucune valeur. Vous voulez probablement lire la valeur de l'élément input .

    <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>
    function test() {
      var x = document.getElementById("1").value;
      document.getElementById("ro").value = x;
    }


    0 commentaires

    1
    votes

    Votre deuxième tableau doit être corrigé de la manière suivante. La valeur id "1" faisait référence à l'élément de formulaire et non à l'élément d'entrée.

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


    0 commentaires