Autor Zpráva
TomasRe
Profil
Ahoj,
dopředu říkám, že javascript vůbec neumím. Stáhnul jsem našeptávač wick http://wick.sourceforge.net/wick_sample/ - funguje přesně, jak si představuji. Ale potřeboval bych to pro více polí s různýmy výrazy - první pole bude obsahovat jednu skupinu slov, druhé pole jinou skupinu...

do indexu jsem tedy vložil novou <textarea class="wickEnabled2">
ze souboru wick.js jsem vytvořil kopii wick2.js, kde jsem upravil řádek upEl = isWithinNode(eL,null,"wickEnabled2",null,null);
v souboru wick2.js jsem upravil řádek na pointerToCollectionToUse = collection2;
ze souboru sample_data.js jsem vytvořil kopii sample_data2.js a upravil název skupiny na collection2

ale stále mi to v obou <textarea> nabízí výběr slov z druhé skupiny slov. Druhý script přepisuje ten první. Můžete mi s tím prosím někdo poradit?

Případně, jestli mi někdo poradíte nějaký obdobný nástroj. Problémem je, že téměř všechny našeptávače jsou dělané na jeden výraz. Do textarea potřebuji vypsat více slov oddělené středníkem.
_es
Profil
TomasRe:
jsem upravil řádek upEl = isWithinNode(eL,null,"wickEnabled2",null,null);
Text "wickEnabled" sa však v tom súbore nachádza viac krát. Okrem toho by taká úprava aj tak nefungovala, lebo funkcie tam sú globálne a prepísali by sa. Mohlo by fungovať prepísať premennú collection zo súboru sample_data.js. Teda pred input alebo textareu, kde má byť iné „našepkávanie“ vložiť skript, kde sa tá premenná zmení.
TomasRe
Profil
_es:
Zkusil jsem tedy dát vše do původní podoby, jen jsem před každou textarea vložil script se skupinou slov. Bohužel to v obou případech bere slova pouze z druhé skupiny:

<form onSubmit="return checkForm()">
<script>collection = ['písek','pero','plomba'];</script>
<textarea class="wickEnabled" cols="50" rows="3" wrap="virtual"></textarea>
<br>
<script>collection = ['pásovec','pes','pštros'];</script>
<textarea class="wickEnabled" cols="50" rows="3" wrap="virtual"></textarea>
</form>

Když ještě přejmenuju proměnnou collection na něco jiného, bere to v úvahu jen seznam slov ve skupině collection.
_es
Profil
TomasRe:
Došlo mi až neskôr, že ani to nebude fungovať. Asi by bolo lepšie použiť nejaký iný „našepkávač“, henten ani podľa kódu nevyzerá byť nejako dobre spravený.
TomasRe
Profil
_es:
Bohužel se v JS opravdu nevyznám, ostatní našeptávače jsou dělané převážně na jeden výsledek :-(. Nešlo by tedy v tomto přiřadit ke každé textarea id a ve scriptu (nějak) přiřadit skupinu slov podle id? Něco ve smyslu

<form action="">
<textarea class="wickEnabled" cols="50" rows="3" id="veci"></textarea>
<br>
<textarea class="wickEnabled" cols="50" rows="3" id="zvirata"></textarea>
</form>
<script type="text/javascript">
if (document.getElementById.id == 'veci'){collection = ['písek','pero','plomba'];} else {collection = ['pásovec','pes','pštros'];}
</script>
_es
Profil
TomasRe:
Pokiaľ chceš použiť tento našepkávač, tak najjednoduchšie riešenie bude dať jednotlivé textové vstupy do iframe a skripty načítať tiež tam.
TomasRe
Profil
_es:
Když to vložím do iframu, tak to nefunguje vůbec :-(. Ale stačilo by, abych do javascriptu načetl id daného pole. Co jsem se kde díval, tak už mi to vypíše správný id pole, ale neumím to skloubit. U textarea jsem přidal id a onclick="collectid(this);" - při kliku na textarea správně vypíše id daného pole, ale již se podle toho neřídí...

<script type="text/javascript">if (document.getElementById.id == 'veci'){collection = ['písek','pero','plomba'];} else {collection = ['pásovec','pes','pštros'];}</script>
<script type="text/javascript">function collectid(elem) {alert(elem.id);}</script>
_es
Profil
TomasRe:
Když to vložím do iframu, tak to nefunguje vůbec :-(
No ale musíš do toho iframu vložiť aj skripty - aby v ňom bolo všetko ako v ukážkovom príklade.
Hmmm a nezakladaj duplicity ( Přiřadit proměnné podle id) - z toho vlákna aj tak nikto nepochopí o čo ide.
TomasRe
Profil
_es:
V iframu to funguje. Super. Díky. Jen to má několik nevýhod - style nemá vliv na výběr slov, slova se zobrazují pod rámem, schované dole... Proto jsem i zkusil založit nové téma, abych to zkusil cestou, kdy se přiřadí skupina slov podle id. Iframe nepoužívám z těchto důvodů moc rád...
juriad
Profil
TomasRe:
Našel jsem třeba tento našeptávač (leaverou.github.io/awesomplete), který take umí vice hodnot a umí běžet na jedné stránce mnohokrát. Je to hodně tvárný našeptávač, ale musí se občas trochu doprogramovat. Viz: Živá ukázka
TomasRe
Profil
juriad:
Super, funguje perfektně. Strašně moc děkuju...

Moderátor juriad: Nezamykej, není to potřeba. Dokážeme ohlídat, že sem nikdo nic nepatřičného nenapíše. A ty naopak můžeš pokračovat v diskusi, pokud potkáš nějaký další problém s našeptáváním.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0