簡體   English   中英

循環后執行代碼的問題

[英]Problems with executing code after a for-in-Loop

我有一個包含多個添加的動態行的表單,在提交表單之前,我想對輸入做一點驗證,例如,檢查所有字段是否都具有輸入等。 所以當我的Submit-Button上有一個onclick-Event時,我稱呼這個小功能:

function validateAndSubmit() {
var form = document.getElementById("mainForm");
var formGroups = document.getElementsByClassName("form-group");
for (var x in formGroups) {
    // Validation goes here
    ....
    if (valid == false) {
        return;
    }
}
form.submit();

因此,按照我的邏輯,代碼應遍歷每個表單組(基本上代表表單中的各個行),並檢查它們是否有效。 在第一個無效行之后,該函數將返回而沒有任何結果。 但是,如果所有formGroups被選中,for-Loop將退出,並且form.submit();form.submit(); 電話將提交表格。

但是,最終提交不會發生。 即使所有表單元素都具有有效輸入,表單也不會提交。 但是,在進行一些調試時,我注釋掉了整個for循環,並且表單提交了,但是沒有經過驗證。 因此,我假設for循環無法正常退出,並且可能需要針對該問題的一些幫助。

整個項目都是用普通的Javascript編寫的,但是,我使用的庫是根據jQuery在窗體上動態添加和刪除項目的。

供參考,您可以在此處在線找到項目

您不應該一開始就使用for-in。 只需使用普通形式即可:

for(var i=0;i<formGroups.length;i++)

記住,for-in是針對對象/詞典的。 例如。 {'核心價值'}

您在循環中遇到的第一個“ x”是“長度”-您的formGroups [x]變成了formGroups [undefined]並立即引發異常。

您還可以使用jQuery選擇器來獲取元素。 在您的示例中

$('.form-control').each(function() {
    // Validation goes here
    console.log($(this));
});

暫無
暫無

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

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