2016-07-23 9 views
0

enter image description hereWie wird der Datapicker des folgenden Kontexts in</td> geladen?

In er über Code, würde Ich mag picker von Eingabefeld hinzuzufügen, die-ID als picker enthält.

Zu diesem Zweck ich die folgende js Code in document.ready() Func verwendet

$("tbody#docTab").click(function() { 
    var row = $(this).closest('tr'); 
    row.find('#datepicker').removeClass('hasDatepicker').datepicker();   
}); 

Aber ich scheint nicht die picker während Onclick das Eingabefeld, was ich auf diesem Code verpasst haben? Vielen Dank.

+0

'closest' Funktion sieht Element auf den DOM-Baum für den Abgleich. Es wird nicht beabsichtigte 'tr' –

+0

Dann wie können wir den #datepicker der aktuellen Zeile wählen, um datepicker zu laden? – user3391137

+0

Siehe https://css-tricks.com/the-difference-between-id-and-class/ – Mottie

Antwort

1

zuweisen eindeutige ID für jedes Element in html, hier ids dupliziert werden - anstelle von gleichen ID auf mehrere inputbox zuweisen - Ich schlage vor, Klasse hinzufügen würde "datepicker" an jedem Eingang, an den Sie picker hinzufügen möchten:

<td> 
    <input type="text" name="sdate[]" class="datepicker" value="0000-00-00" /> 
</td> 
<td> 
    <input type="text" name="edate[]" class="datepicker" value="0000-00-00" /> 
</td> 

und in jquery:

$("tbody#docTab").click(function({ 
    $('.datepicker').removeClass('hasDatepicker').datepicker(); // you can directly add datepicker using its class name  
}); 
+0

Yah es arbeitet bro, Dann warum behalten wir nicht die ID von Duplikaten als Klasse? – user3391137

+0

@ user3391137 weil wir nicht perselect Element mit ID zugreifen können, wenn es doppelte IDs in HTML gibt –

0

Sie können nicht mit der gleichen ID 2 Element haben. Bitte versuchen Klasse zu verwenden für Ihre Eingabe

<input type="text" name="sdate[]" class="datepicker" value="0000-00-00"> 

js Update:

$("tbody#docTab").click(function() { 
    var row = $(this).closest('tr'); 
    row.find('.datepicker').removeClass('hasDatepicker').datepicker();   
}); 
+0

Warum behalten wir nicht die ID der Duplikate als Klasse? – user3391137

+0

Sie sollten ID eindeutig halten, wenn Sie nicht möchten, dass bei der Verwendung von JavaScript ein Fehler auftritt. HTML 5 Spezifikation sagt die gleiche Sache, aber mit anderen Worten. Es besagt, dass ID in seinem Home-Teilbaum eindeutig sein muss, was im Grunde das Dokument ist, wenn wir [die Definition davon lesen.] (Https://html.spec.whatwg.org/multipage/infrastructure.html#home-subtree) – HuyTran