使用JavaScript循环遍历HTML中的数据时遇到问题

时间:2017-04-30 11:22:00

标签: javascript html for-loop

我正在使用javaScript来浏览149个输入类型编号字段,而我在使用它时遇到了问题。我有条件设置,如果这些数字字段的值是负数,浮点数或0,它将使用

返回错误消息

提醒("错误信息");

我正在迭代我的输入类型,通过for循环,如下所示

<button onclick="myFunction()">Try it</button>
<script>
function myFunction() {
var i; var x = 0; var s; var val; var test; 
for (i = 1; i < 150; i++) {
  s = '' + i; //converts i into string

  val = document.getElementById(s).value; //Puts string value into val
  test = +val; //Converts val into number
//Error Checking
}

我在较小的输入类型=数字字段(例如10)上尝试过此代码,并且我的所有错误标记都有效,但每当我使用我需要的数字149(设置为150因为我希望它比150)我没有从我的功能中收到任何错误消息或活动。

2 个答案:

答案 0 :(得分:0)

检查以下示例。

//For Demo Puropse 
for(i=1;i<300;i++){
var node = document.createElement("input");
node.id=i
node.value=i
  document.getElementById("stage").appendChild(node)
}

function checkValues(){
  for(i=1;i<300;i++){
    elemValue = document.getElementById(i).value
    if(! isInteger(elemValue) || ! elemValue){
      alert("Error ! : " + elemValue + "@" + i)
      return;
    }
  }
  
  alert("Passed")
}

function isInteger(x) {
    return x % 1 === 0;
}
<button onclick="checkValues()">Check</button>
<br/>
<div id="stage"></div>

答案 1 :(得分:0)

所以这是我的代码。我正在从数据库中读取,我也不想显示凭据。在我的代码中,您将看到包含评论问题的评论。有没有办法,我可以使用PHP获取产品编号和数量,以便我可以在form.php中使用它。这是一种post方法,但正如问题所说,我对这种编码语言还是比较陌生的。希望这段代码片段能告诉你更多我实际想要完成的事情。

        <form action="form.php" method="post">


    <table cellpadding="6">
      <tr>
        <th>Description</th>
        <th>Price</th>
        <th>Weight</th>
        <th>Image</th> 
        <th>Quantity</th>
      </tr>
    <!-- PHP LANGUAGE -->
    <?PHP
        $sql = "SELECT * FROM parts";
        $q = $conn->query($sql) or die("ERROR: " . implode(":", $conn->errorIndo()));

        while( $row = $q->fetch(PDO::FETCH_ASSOC))
        {

            echo '<tr>' .
                '<td>' . $row['description'] . '</td>' .
                '<td>' . $row['price'] . '</td>' .
                '<td>' . $row['weight'] . '</td>' . 
                '<td> <img src="' . $row[pictureURL] .'" alt="' . $row[number] . '" style="width:50px;height:50px;">' .
                '<td> <input type="number" id= "'. $row[number] . '"  value="0">' .
                '</td>' . '</tr>';
        }
        echo "</table>";

    ?> 
    </table> <br>



    <input type="button" id="submit" value="Submit" />
    </form>
    <script>
    var i; var x = 0; var s; var val; var test; var array = [];
    $('form').submit(function(){{
        var value = $(this).val();

        for (i = 1; i < 5; i++) {
          s = '' + i;  //stores i as string 
          //getsElement id val string and stores into val
          val = document.getElementById(s).value; 
          test = +val; //Converts string into tester int for error checking 

          if tester < 0 { alert("Must enter in one product!"); return;} 

          //CHECKS FOR FLOATS IN Quantity FIELD
          else if (Math.floor(test) != Math.ceil(test)) { alert("Cannot have float quantities!"); return; } 
          else { 
                //My attempt at coding a block that captures the product 
                //Number, and the quantity selected. Is there a way 
                /* QUESTION */
                array.push(i); array.push(x) 
           }
        }
        if (x == 0) { alert("Must have at least one product quantity to continue!"); return; }
        else { alert("good!"); } 
    }}

    </script>
        </body>
    </html>