簡體   English   中英

Javascript:對象是元素數組嗎

[英]Javascript: Is Object an Array of Elements

今天我有一個問題。 我有一個HTML表單,該表單可以具有用於電子郵件地址的動態數量的HTML輸入字段。 我想通過Javascript通過XMLHttpRequest評估那些數據和帖子。

我這樣獲取輸入字段:

var elements = document.getElementById("emailmodal").elements["multiple[]"];

然后我要檢查它是否是數組,因為如果我只有一個輸入字段元素,則不會包含元素數組,而只會包含一個元素:

if(jQuery.isArray(elements))
{

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

        formData.append("emailreceiver[]", elements[i].value);

    }

}else
{

    formData.append("emailreceiver[]", elements.value);

}

如果是數組,它將通過For循環遍歷Elements,如果不是,則直接獲取值。

但是,這不能正常工作。 即使我有多個輸入,腳本也會告訴我,它沒有數組。

對應的HTML是

 <div class="form-group input-group"> <input type="text" name="multiple[]" class="form-control" value="<?php echo $kundendaten['Email']; ?>"> <span class="input-group-btn"><button type="button" class="btn btn-default btn-add">+</button></span> </div> 

這是來自Bootstrap。

如果我將var log設置為控制台,並且有多個元素,則它看起來像這樣: 在此處輸入圖片說明

如果我制作var log並且只有一個元素,它看起來像這樣

在此處輸入圖片說明

我能做什么?

干杯,尼克拉斯

感謝Mmcgowa!

if(elements.length > 1)
{

    alert("Array");
    for(var i = 0; i < elements.length; i++)
    {

        formData.append("emailreceiver[]", elements[i].value);

    }

}else
{

    alert("No Array");
    formData.append("emailreceiver[]", elements.value);

}

這可行。 如果elements沒有數組,那么element.length將是不確定的!

我知道您已經有了解決方案,但是為什么不簡化代碼流程並執行以下操作:

if (elements.length == 1) elements = [elements];

// now you know that if *elements* is not empty, it is always an array
for (var i = 0; i < elements.length; i++)
{
    formData.append("emailreceiver[]", elements[i].value);
}

暫無
暫無

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

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