今天我遇到了问题。我有一个HTML表单,它可以为电子邮件地址提供动态数量的HTML输入字段。通过Javascript我想通过XMLHttpRequest评估那些Data ans Post。
我像这样获取输入字段:
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循环传递元素,如果没有,它直接取值。
然而,这不能正常工作。即使我有多个输入,脚本告诉我,它没有数组。
对应的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>
&#13;
这是来自Bootstrap。
如果我将var日志设置为控制台,并且我有多于一个元素而不是它:
如果我创建var log并且只有一个元素,它看起来像这个
我该怎么办?
干杯, 尼古拉斯
答案 0 :(得分:2)
感谢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将是未定义的!
答案 1 :(得分:0)
我知道您已经有了解决方案,但为什么不简化代码流并执行以下操作:
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);
}