То, как присоединить событие OnClick для JavaScript, генерировало текстовое поле?

У меня есть строка таблицы, которая содержит текстовое поле, и это имеет onclick, который отображает календарь JavaScript... Я добавляю строки к таблице с текстовым полем, но я не знаю, как присоединить 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);
9
задан Benjamin 16 December 2013 в 11:34
поделиться

3 ответа

Вот так:

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

BTW: Будьте осторожны с чувствительностью к регистру в DOM. Это "onclick" , а не "onClick" .

18
ответ дан 4 December 2019 в 08:51
поделиться
el.onclick = function(){
  displayDatePicker(this.id);
};
3
ответ дан 4 December 2019 в 08:51
поделиться

На вашем примере я думаю, что вы хотите сделать следующее:

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

Единственный трюк - это понять, зачем вам нужно завернуть вызов displayDatePicker в функцию { ...] ... } код. В принципе, необходимо назначить функцию свойству onclick, однако для этого нельзя просто сделать el.onclick = displayDatePicker(el.id), т.к. это скажет javascript выполнить функцию displayDatePicker и назначить результат обработчику onclick, а не назначить сам вызов функции. Для этого создается анонимная функция, которая, в свою очередь, вызывает функцию displayDatePicker. Надеюсь, это поможет.

3
ответ дан 4 December 2019 в 08:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: