需要在表单中重复(循环)的javascript表单字段

需要在表单中重复(循环)的javascript表单字段,javascript,coldfusion,Javascript,Coldfusion,下面是一些使用时间选择器的HTML表单代码。当我单击第一行时,时间选择器将按预期执行。但是,当我尝试向第二行或后续行添加时间时,它不起作用。onClick函数与第一行一样显示日历,但值不会返回到输入单元格 下面的代码是在循环命令中生成的,每一行都被分配一个索引/唯一值。但它的表现仍然不正确。HTML表单页面本身是用ColdFusion编写的 <cfoutput> <cfloop index="z" from="1" to="3"> <div cla

下面是一些使用时间选择器的HTML表单代码。当我单击第一行时,时间选择器将按预期执行。但是,当我尝试向第二行或后续行添加时间时,它不起作用。
onClick
函数与第一行一样显示日历,但值不会返回到输入单元格

下面的代码是在循环命令中生成的,每一行都被分配一个索引/唯一值。但它的表现仍然不正确。HTML表单页面本身是用ColdFusion编写的

<cfoutput> 
   <cfloop index="z" from="1" to="3">

    <div class="table right">
      <input type="text" id="starttime#z#" placeholder="Time">
    </div>

    <div class="table right">  
      <input type="text" id="endtime#z#" class="icon" placeholder="Time">
      <a id="link#z#"></a>
    </div>

    <script>
    var endtime#z# = document.getElementById('endtime#z#');
    var timepicker = new TimePicker(['starttime#z#', 'link#z#'], {
      lang: 'en',
      theme: 'blue-grey'
    });
    timepicker.on('change', function (evt#z#) {
      var value = (evt#z#.hour || '00') + ':' + (evt#z#.minute || '00');

      if (evt#z#.element.id === 'link#z#') {
        endtime.value = value;
      } else {
        evt#z#.element.value = value;
      }
    });

    hljs.configure({ tabReplace: '  ' });
    hljs.initHighlightingOnLoad();
    </script>

</cfloop>
</cfoutput>

var endtime#z#=document.getElementById('endtime#z#');
var timepicker=new timepicker(['starttime#z#','link#z#']{
朗:"嗯",,
主题:“蓝灰色”
});
timepicker.on('change',函数(evt#z#){
var值=(evt#z#.hour | | | | | | 00')+:'+(evt#z#.minute | | | 00');
if(evt#z#.element.id=='link#z#'){
endtime.value=值;
}否则{
evt#z#.element.value=值;
}
});
configure({tabReplace:''});
hljs.initHighlightingOnLoad();

您说此代码在循环中执行。假设循环使代码运行3次。意思是这样的:

<input type="text" id="endtime2" placeholder="Time">
<cfoutput>
<cfloop from = 1 to = 3 index = "idx">
<input type="text" id="endtime#idx#" placeholder="Time">
etc
var endtime#idx# = document.getElementById('endtime#idx#');
etc
因为有3个id为endtime2的元素

你是这样处理的:

<input type="text" id="endtime2" placeholder="Time">
<cfoutput>
<cfloop from = 1 to = 3 index = "idx">
<input type="text" id="endtime#idx#" placeholder="Time">
etc
var endtime#idx# = document.getElementById('endtime#idx#');
etc

等
var endtime#idx#=document.getElementById('endtime#idx#');
等

是的,我就是这么做的。显示的数值是每个循环的动态值。因此,结果是什么?html源代码示例(编辑)我不知道这意味着什么。你的新代码解决了这个问题吗?如果没有,请在问题中包含任何CF或JS错误消息(检查浏览器的web控制台)。此外,还有不同的时间选择器库,因此请包含指向您正在使用的特定时间选择器库的链接。