簡體   English   中英

Bootstrap表單JS驗證循環

[英]Bootstrap form JS validation in loop

在循環中進行表單驗證的正確方法是什么? ($ i設置在其他位置)

  <form class="form-calculator" id="edit'.$i.'" action="includes/processing/manual_edit_processing.php" method="post">
  <div class="modal-body">

            <div class="form-group has-feedback" id="div_edit_naam['.$i.']">
              <input type="text" class="form-control" id="edit_naam['.$i.']" name="edit_naam['.$i.']" placeholder="Naam" value="'.$row_list['naam'].'" onkeyup="validate_edit(this, '.$i.'))" onmousemove="validate_edit(this, '.$i.')"><span class="glyphicon glyphicon-warning-sign form-control-feedback" id="edit_naam_status['.$i.']">
            </div>
        </div>

     </div>

    </div>
  </div>
  </form>

  <div class="modal-footer">
    <button type="button" class="btn btn-secondary" data-dismiss="modal" onclick="window.location.reload()">Sluiten</button>
    <button type="button" id="submit_edit'.$i.'" alt="'.$i.'" class="btn btn-primary edit">Bewerk</button>
  </div>

上面是我的HTML部分,下面是我的JS部分,我想我已經搞砸了ID的唯一性嗎?

<script type="text/javascript">
window.onload=function() { document.getElementById('submit_edit[]')[nr].disabled = true; }

function validate_edit(selectVeld, nr)
{
    // edit_naam
    if(document.getElementById('edit_naam[]')[nr].value.length < 5) { document.getElementById('div_edit_naam[]')[nr].className = "form-group has-warning has-feedback"; document.getElementById('edit_naam_status[]')[nr].className = "glyphicon glyphicon-warning-sign form-control-feedback"; }
    else
    { document.getElementById('div_edit_naam[]')[nr].className = "form-group has-success has-feedback"; document.getElementById('edit_naam_status[]')[nr].className = "glyphicon glyphicon-ok form-control-feedback"; }

    // Submit form
    if(document.getElementsByClassName('has-error').length > 0 || document.getElementsByClassName('has-warning').length > 0) { document.getElementById('submit_edit').disabled = true; }
    else { document.getElementById('submit_edit').disabled = false; }
}
</script>

您應該使用:

document.getElementById("edit_naam["+nr+"]")

代替:

document.getElementById('edit_naam[]')[nr]

您為HTML元素設置的大多數ID的格式均為something[index]因此應將其作為參數傳遞給document.getElementById函數。 document.getElementById('edit_naam[]')[nr]沒有任何意義,因為此函數僅返回一個HTML元素。

此外, []也不是HTML 4中ID的可接受字符。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM