我有一个包含文本框的表行,它有一个显示JavaScript日历的onclick……我正在使用textbox向表中添加行,但我不知道如何将onclick事件附加到JavaScript生成的textbox中……
<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);
发布于 2010-02-09 13:33:46
如下所示:
var el = document.createElement('input');
...
el.onclick = function() {
displayDatePicker('attendanceDateadd1');
};
顺便说一句:在DOM中要注意区分大小写。是"onclick"
,不是"onClick"
。
发布于 2010-02-09 13:37:10
以你的例子为例,我认为你想这样做:
el.onclick = function() { displayDatePicker(el.id); };
惟一的诀窍是认识到为什么需要将displayDatePicker
调用包装在function() { ... }
代码中。基本上,您需要将一个函数分配给onclick
属性,但是,要做到这一点,您不能只执行el.onclick = displayDatePicker(el.id)
,因为这将告诉javascript执行displayDatePicker
函数,并将结果分配给onclick
处理程序,而不是分配函数调用本身。因此,为了解决这个问题,您创建了一个匿名函数,该函数反过来调用您的displayDatePicker
。希望这能有所帮助。
发布于 2010-02-09 13:35:18
el.onclick = function(){
displayDatePicker(this.id);
};
https://stackoverflow.com/questions/2226953
复制相似问题