用于重新分配元素ID的javascript数组循环

时间:2017-01-10 15:45:50

标签: javascript arrays loops datepicker

我正在创建一个包含利用jquery datepicker的输入元素的表单。以下是我的HTML对这些输入的看法示例:

<td style="width:15%"><input type="text" name="datepicker" id="Tb3fromRow10"/></td>
<td style="width:15%"><input type="text" name="datepicker" id="Tb3toRow10"/></td>

我遇到了一个需要日期格式为mm / dd / yyyy的问题,但数据库只接受yyyy-mm-dd中的格式。因此,我试图通过在窗体上显示为mm / dd / yyyy来破解它,但是有一个eventlistener onSubmit将所有日期格式更改为yyyy-mm-dd以便数据库可以记录下来。为此,我尝试编写一个基于getElementsByName创建数组的循环(因为我命名了所有这些元素&#34; datepicker&#34;),更改了所有格式,然后重新分配了所有ID&# 39; S。我想我已经完成了前两个步骤,但我仍然坚持重新分配ID的最后一步:

var myArray = document.getElementsByName('datepicker[]');
    for(var i = 0; i < myArray.length; i++) {
    var sep = myArray.split('/');
    var newDate = sep[2]+'-'+sep[0]+'-'+sep[1];
}
**document.getElementsByName('datepicker[]').value = newDate;**  

我知道最后一行不正确,有人可以帮我将所有日期元素重新分配到相应的ID吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

您没有重新分配ID。但是你没有正确使用myArray。假设name="datepicker[]"而不是name="datepicker",您需要更改以下内容:

var myArray = document.getElementsByName('datepicker[]'); // or ("datepicker") depending on their name
for(var i = 0; i < myArray.length; i++) {
  var sep = myArray[i].split('/');
  var newDate = sep[2]+'-'+sep[0]+'-'+sep[1];
  myArray[i].value = newDate;
} 

无论如何,为什么不在存储之前验证并重新格式化服务器?