IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Filip
Člen
Avatar
Filip:4.2.2017 10:35

Zdravím, mam ve formulari, mimo jine, dva radiobuttony a textbox pro prijmení:

...
<form name="nova" action="system/zpracovat.php" method="post" onsubmit="return overit(this)">
<input type="radio" value="m" name="pohlavi" onkeypress=prijmeni()>Muž&nbsp <input type="radio" value="f" name="pohlavi" onkeypress=prijmeni()>Žena
<input type=text name="prijmeni" autocomplete="off" value="<?php if (isset($_SESSION['prijmeni'])) {echo mb_convert_case($_SESSION['prijmeni'], MB_CASE_TITLE, "UTF-8");} ?>">
...

a v javascriptu:

function prijmeni(nova) {

    if(nova.prijmeni.indexOf("ová") {
    nova.pohlavi[f]=checked;}
    else nova.pohlavi[m]=checked;
}

S javascriptem si moc nerozumim... Ucelem je to, ze kdyz uzivatel zacne psat do textboxu "prijmeni", javascript v nem bude pri kazdem stisku klavesy vyhledavat retezec "ová" a pokud ho nalezne, zaskrtne radio "zena", pokud ne, zaskrtne radio "muz". Jak na to, poradi nekdo? Dik :)

Editováno 4.2.2017 10:37
 
Odpovědět
4.2.2017 10:35
Avatar
Michal
Člen
Avatar
Odpovídá na Filip
Michal:4.2.2017 11:04

Ahoj, zkus tohle (živá ukázka).

HTML:

<form name="nova" action="system/zpracovat.php" method="post" onsubmit="return overit(this)">
<input type="radio" value="m" name="pohlavi">Muž
<input type="radio" value="f" name="pohlavi">Žena
<input type=text name="prijmeni" autocomplete="off">

JavaScript:

window.onload = function() {
   var radio = document.getElementsByName('pohlavi');
   document.getElementsByName('prijmeni')[0].onkeyup = function() {
      var aktivni = this.value.indexOf('ová') > -1; // Pokud je nalezen řetězec "ová", podmínka vrátí 1, jinak 0.
      radio[+aktivni].checked = true; // V závislosti na předchozí podmínce se zaškrtne 2. nebo 1. radio.
   }
}
Editováno 4.2.2017 11:05
 
Nahoru Odpovědět
4.2.2017 11:04
Avatar
Filip
Člen
Avatar
Odpovídá na Michal
Filip:4.2.2017 11:36

Jo supr, funguje to, jen jsem jeste nedomyslel, ze se radio (zena) ma zaskrtnout pouze, kdyz je retezec "ová" na konci. Takhle bych udelal treba z pana Nováka zenu, coz by nemuselo bejt zrovna idealni :-D Je na to nejaka funkce?

Editováno 4.2.2017 11:38
 
Nahoru Odpovědět
4.2.2017 11:36
Avatar
Michal
Člen
Avatar
Odpovídá na Filip
Michal:4.2.2017 11:45

V tom případě už jen stačí změnit řádek:

var aktivni = this.value.indexOf('ová') > -1; // Funkce, která vrátí pozici podřetězce kdekoliv v řetězci.

na:

var aktivni = /ová$/.test(this.value); // Regulární výraz, který testuje, zda se na konci řetězce nachází "ová".
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
4.2.2017 11:45
Avatar
Filip
Člen
Avatar
Filip:4.2.2017 11:47

jo to je presne ono, dik moc :)

 
Nahoru Odpovědět
4.2.2017 11:47
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.