如何为javascript生成的文本框附加OnClick事件?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (99)

我有一个包含文本框的表行,它有一个显示JavaScript日历的onclick ...我正在使用textbox向表中添加行,但我不知道如何将onclick事件附加到JavaScript生成的文本框中。 。

<input  class="date_size_enquiry" type="text" autocomplete="off"
onclick="displayDatePicker('attendanceDateadd1');" size="21" readonly="readonly"    
maxlength="11" size="11"  name="attendanceDateadd1" id="attendanceDateadd1" 
value="" onblur="per_date()" onchange="fnloadHoliday(this.value);">

我的JavaScript生成一个文本框,

    var cell2 = row.insertCell(1);
    cell2.setAttribute('align','center')
    var el = document.createElement('input');
    el.className = "date_size_enquiry";
    el.type = 'text';
    el.name = 'attendanceDateadd' + iteration;
    el.id = 'attendanceDateadd' + iteration;
    el.onClick = //How to call the function displayDatePicker('attendanceDateadd1');
    e1.onblur=??
    e1.onchange=??
    cell2.appendChild(el);
提问于
用户回答回答于

喜欢这个:

var el = document.createElement('input');
...
el.onclick = function() {
    displayDatePicker('attendanceDateadd1');
};

顺便说一句:小心DOM中的区分大小写。这"onclick",不是"onClick"

用户回答回答于

举个例子,我想你想这样做:

el.onclick = function() { displayDatePicker(el.id); };

唯一的技巧是了解为什么需要displayDatePickerfunction() { ... }代码中包装你的调用。基本上,您需要为onclick属性分配一个函数,但是为了做到这一点,您不能这样做,el.onclick = displayDatePicker(el.id)因为这会告诉javascript执行displayDatePicker函数并将结果分配给onclick处理程序而不是分配函数调用本身。因此,为了解决这个问题,你需要创建一个匿名函数,然后调用你的函数displayDatePicker。希望有所帮助。

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动