首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何为JavaScript生成的textbox附加onclick事件?

如何为JavaScript生成的textbox附加onclick事件?
EN

Stack Overflow用户
提问于 2010-02-09 13:29:28
回答 4查看 25.9K关注 0票数 12

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

代码语言: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会生成一个文本框,

代码语言: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);
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-02-09 13:33:46

如下所示:

代码语言:javascript
复制
var el = document.createElement('input');
...
el.onclick = function() {
    displayDatePicker('attendanceDateadd1');
};

顺便说一句:在DOM中要注意区分大小写。是"onclick",不是"onClick"

票数 20
EN

Stack Overflow用户

发布于 2010-02-09 13:37:10

以你的例子为例,我认为你想这样做:

代码语言:javascript
复制
el.onclick = function() { displayDatePicker(el.id); };

惟一的诀窍是认识到为什么需要将displayDatePicker调用包装在function() { ... }代码中。基本上,您需要将一个函数分配给onclick属性,但是,要做到这一点,您不能只执行el.onclick = displayDatePicker(el.id),因为这将告诉javascript执行displayDatePicker函数,并将结果分配给onclick处理程序,而不是分配函数调用本身。因此,为了解决这个问题,您创建了一个匿名函数,该函数反过来调用您的displayDatePicker。希望这能有所帮助。

票数 4
EN

Stack Overflow用户

发布于 2010-02-09 13:35:18

代码语言:javascript
复制
el.onclick = function(){
  displayDatePicker(this.id);
};
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2226953

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档