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

标签 javascript arrays loops datepicker

我正在创建一个带有利用 jquery 日期选择器的输入元素的表单。以下是这些输入的 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 来破解它,但有一个事件监听器 onSubmit 将所有日期格式更改为 yyyy-mm-dd 以便数据库可以记录它。为此,我尝试编写一个循环,该循环基于 getElementsByName 创建一个数组(因为我将所有这些元素命名为“datepicker”),更改其所有格式,然后重新分配其所有 ID。我想我已经完成了前两个步骤,但仍停留在重新分配 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 吗?

谢谢!

最佳答案

您不会重新分配 ID。但您没有正确使用 myArray。以下是您需要更改的内容,假设 name="datepicker[]" 而不是 name="datepicker" (如示例的 HTML 部分所示):

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;
} 

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

关于用于重新分配元素 ID 的 javascript 数组循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41572741/

相关文章:

c 编程 for 循环输入字符

c - 有条件地向后或向前迭代的最快方法

javascript - Bootstrap-datepicker getDate 错误结果

javascript - FS.mkdir相对路径

c++ - 理解 char array[] 和 string

javascript - 如何将相同的元素添加到javascript数组n次

javascript - jQuery Carousel Plugin 按钮延迟问题

javascript - 观察尚不存在的目标节点上的突变

java - 使用反射和数组参数构造类的 IllegalArgumentException

javascript - 试图理解javascript中的for循环