Autor Zpráva
Indy_witsch
Profil
Jak bych mohl doplnit polížko "input" o nějaký text vložený pomocí funkce onkeypress ? Zkoušel jsem to, ale pohořel jsem. Jedná se mi konktérně o to, že bude někde napsané "modrá, červená...atd..." no a když člověk klikne na ten text (třeba) červená, tak se mu to "input" doplní slovo red.
Marty
Profil
<input type="text" value="cervena" onkeypress="this.value = 'red'" />

Když se nad políčkem formuláře stiskne klávesa, tak se změní jeho text na red.

To by vám mohlo pomoci, pokud jsem váš dotaz pochopil správně, ale míchate tam kliknutí a stisk klávesy dohromady, tak nevím.
Indy_witsch
Profil
Já jsem měl namysli text mimo ten "input". Tohle bych zvládl, ale když jsem to dělal s tím textem mimo tak mi to nešlo.
caesar1987
Profil
tak tam das naprv musis vlozit text do niecoho, co sa da pomenovat, napr do span....
a potom to spravis cez adresovanie prvkov....
Meldo
Profil
pouzivat klavesove skratky sa moc nedoporucuje. vela uzivatelov pouziva klav. skratky na ovladanie spojho prehliadaca a tymto im to mozete znemoznit.
peta
Profil *
Indy_witsch
Jo takhle, ty klepnes na R a ono to vyplni policko "aaa" cim? a policko "bbb" se uz nevyplni? nebo jaky to ma ucel.
Mimochodem, jak rika Meldo, kdyz si zablokujes klavesnici, cim budes psat a pouzivat alt+r, kdyz na r mi to prepise policko?

j teda pouzivam pro objekt script daleko obsahlejsi, ale to te nemusi vzrusovat
function objGet(x)
{var d=document;if(typeof x=='string')
x=d.getElementById?d.getElementById(x):d.all?eval('d.all.'+x):d.layers ?d.layers[x]:null;
return x;}

tobe staci toto:

<script>
function objGet(x) {return document.getElementById(x);}
function objv(a,b) {objGet(a).value=b;}

function klavesa(e)
{var k;
if (!e) var e=window.event;with(e){k=charCode?charCode:keyCode?keyCode:which}

if (k==65) objv("aaa","red")
}

document.onkeyup = klavesa;
document.focus();
</script>

<body>
<input type="text" size="15" id="aaa" value="kukuc" />
</body>
peta
Profil *
a pozor, tento radek by mel byt spravneji spise, ale bude fungovat i tamten:
if (!e) var e=window.event;k=e.charCode?e.charCode:e.keyCode?e.keyCode:e.which;
peta
Profil *
65 je teda male "a", pokud neznas kody klaves...
Leo
Profil
eval('d.all.'+x)

To je proboha co, Leo
peta
Profil *
Leo
To je prosim pekne eval, jako evaluate, nebo jak se to pise. To neznas? :)
A jakym zpusobem by to pan chytrej zapsal, aby to bylo jednoduse?
Eval je nahodou velice dobra funkce, kdyz delas kalkulacku, kde prevedes string na vzorec a nemusis si tu funkci psat sam a rozebirat cast po casti.
Chamurappi
Profil
Reaguji na petu:
Co třeba jen eval(x)?
Onen slavný document.all nikdy nebyl v Exploreru potřeba k identifikaci konkrétního objektu. Měla to být kolekce všech prvků, podobně jako existuje třeba kolekce obrázků document.images nebo formulářů document.forms.
Leo
Profil
Pak chytrej by predne nikdy nepouzil document.all, ktery beha jen v IE, a kdyz tak treba ve tvaru

document.all[x], nebo jak ten IE implementuje. Leo
Chamurappi
Profil
Reaguji na Lea:
Už přes rok běhá document.all i v Mozille a minimálně dva roky i v Opeře. I kdyby neběhal, nic se neděje. Přečti si celý řádek, document.all je tam jen jako alternativa, kdyby document.getElementById() nechodilo.

a kdyz tak treba ve tvaru document.all[x], nebo jak ten IE implementuje
Pložka asociativního pole a vlastnost objektu je víceméně totéž. K vlastnosti mohu přistupovat skrze objekt["vlastnost"] a k položce asociativního pole skrze pole.položka.
Leo
Profil
"Pložka asociativního pole a vlastnost objektu je víceméně totéž. K vlastnosti mohu přistupovat skrze objekt["vlastnost"] a k položce asociativního pole skrze pole.položka."

To ja vim, prave proto je nesmysl pouziva eval. Leo
peta
Profil *
Chamurappi
Onen slavný document.all nikdy nebyl v Exploreru potřeba
Co treba IE4 ? :)

Leo
document.all[x]
to je document.layers[x], to si pletes
Ale nejsem si jistej...
Takze rikas, ze
document.all.name je totez jako
document.all[name]
?
Jestli ano, pak to budu pouzivat. Zatim znam jedine reseni, jak pristupovat k name prvkum a to pres eval('document.all.'+'ahoj')
<input name="ahoj">
Protoze
document.all.'ahoj' je nesmysl
document.all['ahoj'] se mi jevi jako stejny nesmysl, nicmene stoji to za zvazeni a vyzkouseni. Takze pokud mas vyzkouseno, dej mi vedet.
totez pro
document.'ahoj'
document['ahoj']

Mno, koukam, ze v dalsich reakcich se o tom bavite, ja to vyzkousim. Sem tuto cast scriptu proste odnekud opsal a tam to bylo s eval. Ale uz se to blizi k dokonalosti :)
peta
Profil *
Leo diky, s temi zavorkami to funguje. Taky nemam rad eval, ale fakt sem nevedel...
Chamurappi
Profil
Reaguji na petu:
Ani Explorer 4 document.all vůbec nepotřeboval.
U asociativních polí platí v JS přesně toto: document.all.ahoj (bez uvozovek) je totéž, co document.all["ahoj"]
Leo
Profil
S tou hranatou zavorkou to v IE pravdepodobne beha jak v pripade, ze x je hodnota id, tak name. Leo
Leo
Profil
"U asociativních polí platí v JS přesně toto: document.all.ahoj (bez uvozovek) je totéž, co document.all["ahoj"]"

Pripadne

document.all."ahoj" (pokud by ahoj bylo klicove slovo javascriptu)

Leo
peta
Profil *
Chamurappi
A jak to teda v IE4 behalo?
Vcera jsem zkousel
"document.ahoj"
"document.all.ahoj"
v prvnim pripade nic, ve druhem pohodka
nebo jako staci
"ahoj"
pro pristup k objektu a prohlizec, at si poradi, jak umi? Neco jako je window.document, ze staci pouze document, pokud nepouzivam framy?

x=d.getElementById?d.getElementById(x):d.all?d.all[x]:d.layers?d.layer s[x]:null;
Chamurappi
Profil
Reaguji na petu:
Ano, Explorer 4 generoval reference na objektu window jako window.idObjektu, tj. funguje samotné idObjektu. Ostatní prohlížeče tuto vlastnost přebraly zřejmě zároveň s podporou document.all.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0