2010-02-09 23 views
6

Bir metin kutusu içeren bir tablo satırım var ve bir JavaScript takvimini görüntüleyen bir onclick'i var ... Tabloya metin kutusuyla satır ekliyorum, ancak JavaScript'in oluşturduğu metin kutusuna onclick olayını nasıl ekleyeceğimi bilmiyorum ...Javascript'in oluşturduğu bir metin kutusu için OnClick olayına nasıl bağlanır?

<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);"> 

Ve JavaScript bir metin kutusu oluşturur bu gibi

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); 
+1

Olaylara dinamik olarak bağlamanın çapraz tarayıcı olmadığına inanıyorum, bu nedenle farklı tarayıcılar için farklı kod yazmanız gerekebilir. Bu amaçla JQuery gibi bir JS libray kullanmayı öneriyorum. JQuery ile bu kadar basit: '$ ('# elementId') tıklayın (işlev() {/ * Burada istediğinizi yapın * /}); –

+1

@eyazici: OP'nin kullandığı DOM manipülasyon stratejisi güvenli setAttribute() 'dışında. – Asaph

cevap

14

:

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

BTW: harf duyarlı dikkatli olun DOM'daki vity. "onClick" değil "onclick".

+0

@ Asaph çalışmadı 'el.onClick = function() {alert (el.id);}; –

+1

@chandru_cp:" onclick "içindeki" c "harfini büyük harf kullanmayın. Bu küçük bir "c". Cevabımın son satırına bakın. – Asaph

+0

@chandru_cp: Neden bu cevabı onaylamadınız? – Asaph

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

seni örnek alarak, bunu yapmak istiyorum düşünüyorum: Eğer function() { ... } kodunda sizin displayDatePicker çağrıyı tamamlamayı neden ihtiyaç

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

sadece hüner gerçekleştirmektir. Temel olarak, onclick özelliğine bir işlev atamanız gerekir, ancak bunu yapmak için el.onclick = displayDatePicker(el.id) yapamazsınız, çünkü bu javascript öğesinin displayDatePicker işlevini çalıştırmasını söyler ve sonucu işlev çağrısını atamak yerine onclick işleyiciye atar kendisi. Bu nedenle, etrafınızda dolaşmak için displayDatePicker numaranızı arayarak anonim bir işlev oluşturun. Umarım yardımcı olur.

İlgili konular