Spouštění funkce vícekrát – JavaScript, AJAX, jQuery – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Spouštění funkce vícekrát – JavaScript, AJAX, jQuery – Fórum – Programujte.comSpouštění funkce vícekrát – JavaScript, AJAX, jQuery – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené — příspěvek s řešením.
fix0
Stálý člen
13. 8. 2021   #1
-
0
-

Ahoj všem, prosím si o radu.

Používám tento date picker: https://jqueryui.com/datepicker/

Inicializuje se takto:

  <script>
  $( function() {
    $( "#datepicker" ).datepicker();
  } );
  </script>

Já to dělám takto:

$( function() {
				$( "#datepicker" ).datepicker({
                     dateFormat: "dd.mm.yy",
                   });
                 } );
				$.datepicker.regional["cs"] = {
					changeMonth: true,
					changeYear: true,
					closeText: "Zavřít",
					prevText: "&#x3C;Dříve",
					nextText: "Později&#x3E;",
					currentText: "Nyní",
					monthNames: [ "leden","únor","březen","duben","květen","červen",
					"červenec","srpen","září","říjen","listopad","prosinec" ],
					monthNamesShort: [ "led","úno","bře","dub","kvě","čer",
					"čvc","srp","zář","říj","lis","pro" ],
					dayNames: [ "neděle", "pondělí", "úterý", "středa", "čtvrtek", "pátek", "sobota" ],
					dayNamesShort: [ "ne", "po", "út", "st", "čt", "pá", "so" ],
					dayNamesMin: [ "ne","po","út","st","čt","pá","so" ],
					weekHeader: "Týd",
					//dateFormat: "dd.mm.yy",
					dateFormat: "yy-mm-dd",
					firstDay: 1,
					isRTL: false,
					showMonthAfterYear: false,
				yearSuffix: "" };
				$.datepicker.setDefaults($.datepicker.regional["cs"]);
				$(".datepicker").datepicker();

Problém:

Mám tabulku, kde na každém řádku tabulky je datapicker. Jenže funguje jen ten na prvním řádku a každý další už je ignorován.

Poradíte mi prosím jak ten JS napsat tak, aby datepicker fungoval pro všechny inputy, nejen pro ten první na prvním řádku tabulky?

Díky moc.

Nahlásit jako SPAM
IP: 31.30.163.–
fix0
Stálý člen
13. 8. 2021   #2
-
0
-

Ten kód ted říká: Dej datepcker prvnímu input elementu, který se jmenuje "datepicker".

Já potřebuji, aby ten kód říkal: Dej datepicker všem input elementům, které se jmenují "datepicker".

Nahlásit jako SPAM
IP: 31.30.163.–
Řešení
peter
~ Anonymní uživatel
4014 příspěvků
13. 8. 2021   #3
-
+1
-
Zajímavé
fix +
Vyřešeno Nejlepší odpověď

Zas ti moc nerozumim, dotazu...

$("#datepicker") - nastav 1 elementu, ktery ma unikatni id=datapicker
$(".datepicker") - nastav vsem elementum, ktere maji class=datapicker

To tam mas. A ten kod ti nefunguje nebo, jak?

Zkousel jsi sem nekdy pridat jednoduchy spustitelny-kopirovatelny kod? Nejakou tabulku, kde mas 2-3-4 inputy a pouzity link na js jquery a ten datapicker? Kod, ktery bychom mohli spustit a testovat a ne hadata, co tam jeste mas? :)

Kdyz pouzijes id, tak id muze mit jen jeden element, class vice. Ale pozor, mrkni na kod toho datapickeru, zda neobsahuje prave class 'datapicker' pro nejaky vnitrni element. Ja bych tam mozna pro test pouzil vlastni class 'xdatapicker', abych mel jistotu (pokud to teda nefunguje)

- cili, bud tam nemas element, ktery ma class datapicker (z tveho neuplneho kodu se tohle neda vycist)
- nebo ta class se bije s podobnou class, kterou tam generuje ten kod element.datapicker() (to bych si musel napsat vlastni kod, protoze tvuj neni mozne pouzit a otestovat si to)
Psat si vlastni kod se mi skutecne nechce, abych zjistil, treba, ze vlastne, co jsi napsal je spravne a chybu as v html, kde mas stale inpu id=datapicker misto input class=datapicker nebo nejaky preklep jako Datapicker, dataPicker datapiker data-picker

Nahlásit jako SPAM
IP: 2001:718:2601:258:680c:7c11:969d:333...–
peter
~ Anonymní uživatel
4014 příspěvků
13. 8. 2021   #4
-
0
-

https://jqueryui.com/datepicker/

zkopiruji jejich kod na jsfiddle https://jsfiddle.net/xzpgbw47/
A pridam 3 inputy (copy paste) + zmenim jim id na class + pridam inicializaci pro class = a vidim, ze to funguje. Takze ten js mas nejspis spravne. Nevim, co ti odpovedet na dotaz :)
 

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>jQuery UI Datepicker - Default functionality</title>
  <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
  <link rel="stylesheet" href="/resources/demos/style.css">
  <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
  <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
  <script>
  $( function() {
    $( "#datepicker" ).datepicker();
    $( ".datepicker" ).datepicker();
  } );
  </script>
</head>
<body>
 
<p>Date: <input type="text" id="datepicker"></p>
 
<p>Date: <input type="text" class="datepicker"></p>
<p>Date: <input type="text" class="datepicker"></p>
<p>Date: <input type="text" class="datepicker"></p>
 
</body>
</html>
Nahlásit jako SPAM
IP: 2001:718:2601:258:680c:7c11:969d:333...–
fix0
Stálý člen
13. 8. 2021   #5
-
0
-

Zkoušel jsem něco jako toto, ale nefunguje mi to. :-)

var datepickers = document.getElementsByName("datepicker");
				for (datepicker of datepickers) {
					$( function() {
						$( "#datepicker" ).datepicker();
					} );
				}
Nahlásit jako SPAM
IP: 31.30.163.–
fix0
Stálý člen
13. 8. 2021   #6
-
0
-

Můj další amatérský neúspěšný pokus.

var buttons = document.getElementsByName("datepicker");

				for (var i = 0; i < buttons.length; i++) {
					buttons[i].datepicker();
				}
Nahlásit jako SPAM
IP: 31.30.163.–
gna
~ Anonymní uživatel
1891 příspěvků
13. 8. 2021   #7
-
+1
-
Zajímavé
fix +

#5 fix 

$(datepicker).datepicker();

Ale na to se vykašli a udělej to jak psal peter. Přidej těm elementům class="datepicker" a použij selektor ".datepicker".

Nahlásit jako SPAM
IP: 213.211.51.–
fix0
Stálý člen
13. 8. 2021   #8
-
0
-

Mě se neukazovali peterovi odpovědi. Peter díky moc, při použití jako třídu to funguje přesně takto, perfektní, díky moc.

Nahlásit jako SPAM
IP: 31.30.163.–
peter
~ Anonymní uživatel
4014 příspěvků
13. 8. 2021   #9
-
0
-

gna - On ten kod tam ma. Nejde uplne o muj napad. Je to jeden z poslednich radku prvniho prispevku. Jen jsem to vypichl.

Nahlásit jako SPAM
IP: 2001:718:2601:258:680c:7c11:969d:333...–
peter
~ Anonymní uživatel
4014 příspěvků
13. 8. 2021   #10
-
0
-

Proto pisu, ze chci videt i zbytek kodu, protoze se neda zjistit, proc mu to jako nefunfuje, kdyz to tam ma :)
 

Nahlásit jako SPAM
IP: 2001:718:2601:258:680c:7c11:969d:333...–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 18 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý