Autor Zpráva
Jakuje
Profil *
Mám problém. Chtěl bych, aby se mi při změně jednoho selectu změnil obsah druhého.


Kód mám zatím nějak takto, ale ta js funkce v onChange nefunguje. Hlásí že production_s has no properties.

<form name="f1">
G:
<select name="production_g" onChange="document.f1.productioin_s.value=1-document.f1.production_g;" >
<option value="1.0">100%</option>
<option value="0.9">90%</option>
<option value="0.8">80%</option>
<option value="0.7">70%</option>
<option value="0.6">60%</option>
<option value="0.5" selected >50%</option>
<option value="0.4">40%</option>
<option value="0.3">30%</option>
<option value="0.2">20%</option>
<option value="0.1">10%</option>
<option value="0.0">0%</option>
</select><br>
S:
<select name="production_s">
<option value="1.0">100%</option>
<option value="0.9">90%</option>
<option value="0.8">80%</option>
<option value="0.7">70%</option>
<option value="0.6">60%</option>
<option value="0.5" selected >50%</option>
<option value="0.4">40%</option>
<option value="0.3">30%</option>
<option value="0.2">20%</option>
<option value="0.1">10%</option>
<option value="0.0">0%</option>
</select><br>
</form>


Mělo by to oboustraně dopočítat zbytek do sta procent (vevnitř do jedné) a zobrazit v druhém selectu. pomůže někdo?
Peter p360t Kováč
Profil
Skús si opraviť preklep v atribúte onChange prvého selectu (onChange="document.f1.productioin_s.value=1-document.f1.production_g; " na onChange="document.f1.production_s.value=1-document.f1.production_g;") .

ale vlastne, chyba môže byť aj v tomto:

<form name="f1">

G:

<select name="production_g" onChange="document.f1.production_s.[production_s.selectedIndex].value= 1-
this.options[this.selectedIndex].value;" >

<option value="1.0">100%</option>

<option value="0.9">90%</option>

<option value="0.8">80%</option>

<option value="0.7">70%</option>

<option value="0.6">60%</option>

<option value="0.5" selected >50%</option>

<option value="0.4">40%</option>

<option value="0.3">30%</option>

<option value="0.2">20%</option>

<option value="0.1">10%</option>

<option value="0.0">0%</option>

</select><br>

S:

<select name="production_s">

<option value="1.0">100%</option>

<option value="0.9">90%</option>

<option value="0.8">80%</option>

<option value="0.7">70%</option>

<option value="0.6">60%</option>

<option value="0.5" selected >50%</option>

<option value="0.4">40%</option>

<option value="0.3">30%</option>

<option value="0.2">20%</option>

<option value="0.1">10%</option>

<option value="0.0">0%</option>

</select><br>

</form>
Jakuje
Profil *
Jo, to byla možná jedna z chyb. Teď to nepíše chybu žádnou, ale nefunguje ... :-(

Někde je tam asi nějaká blbina. Javascript nemám v malíku jako PHP a tak se snažím opisovat a vždycky není stoprocentní zdroj nebo to na JPW není konkrátně popsáno.
Jakuje
Profil *
Teď mi to píše

Chyba: missing name after . operator
Zdrojový soubor: file:///G:/sc/img/tst.html
Řádek: 1, Sloupec: 52
Zdrojový kód:
document.f1.production_s.[production_s.selectedIndex].value= 1-this.options[this.selectedIndex].value; (před prvním value)
Jakuje
Profil *
no tak jak jsme to vymysleli, tak by to asi mělo měnit hodnotu toho selectu, ale já bych radši aby to vybíralo. Nevím jestli to jde ...
peta
Profil
Jakuje
select: jakpsatweb - javascript- formulare - select zpusobi...
prepsani1: innerHTML (jakpsatweb - javascript - (neco) -)
prepsani2: createElement, (deleteNode/removeNode)
prepsani3: X=object(select2).getElementsByTagName('option') ; cyklus pro vsechny v X
Jakuje
Profil
Jakuje
select: jakpsatweb - javascript- formulare - select zpusobi...
prepsani1: innerHTML (jakpsatweb - javascript - (neco) -)
prepsani2: createElement, (deleteNode/removeNode)
prepsani3: X=object(select2).getElementsByTagName('option') ; cyklus pro vsechny v X


Nějak jsem to nepochopil. Můžeš trochu názorněji?
los
Profil *
Skús niečo takéto: <select name="production_g" onchange="this.form.production_s.selectedIndex=10-this.selectedIndex">
Jakuje
Profil
2 los: Díky. To už začíná být funkčnější. Ještě si musím pohrát aby to dělalo přesně to co má.

Edit: Už to jede. Moc díky všem.
peta
Profil
Jakuje
prepsani rozumim to, ze prepisuji nejake hodnoty, pripadne cele pole select.


prepsani1: innerHTML (jakpsatweb - javascript - (neco) -)
prepsani2: createElement, (deleteNode/removeNode)
prepsani3: X=object(select2).getElementsByTagName('option') ; cyklus pro vsechny v X

jsou tipy na prikazy, ktere je mozne pouzit k prepsani hodnot. Jenze, to zrejme nepotrebujes, mas selecty stanoveny pevne a nic v nich prepisovat nepotrebues. Jen je potrebujes propojit, aby meli oba stejne hodnoty.

"this.form.production_s.selectedIndex=10-this.selectedIndex"
konkretne ten prikaz dela to, ze selectu2 urci cislo selected jako 10-selected_z_1. Kdybys pridal 11ctou polozku, pak tam bude treba dat 11.
take je mozne to resit specialnim scriptem, ktery projde vsechny value a najde shodnou. Ale funguje ti toto, to je podsatne.
tuzko
Profil *
ach vy !!!


onchange="javascript: var s = document.getElementById('name'); s.options[s.selectedIndex].value=...."

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:

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

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

0