« 1 2
Autor Zpráva
jakubroz
Profil
ted akorád ještě nevim jak to udělat když jí chci odebrat u více inputů a každej se jinak jmenuje.
Nox
Profil
Tak buď manuálně opakovat...nebo si třeba udělej pole proměnných, kde dáš názvy požadovaných inputů:
var kontrola = new Array("txt","letadlo","lokomotiva")

for(a=0;a<kontrola.length;a++){
txt=form[kontrola[a].toString()].value; snad toto půjde...toString tam možná nemusí být
a pak už defakto stejně
a ještě - nedávej to jen na onclick, ale přidej to i do tagu form a místo "onclick" dej "onsubmit"
jakubroz
Profil
no to ani ne. já bych to i klidně manuálně opakoval, ale ono to nešlo. tak nevim
asi bych musel změnit i název té funkce co?
Nox
Profil
To určitě ne, někde v tom máš asi chybu... zkus FF plugin Firebug, třeba napoví
jakubroz
Profil
já si myslim že v tom chybu nemam.
když hned pod ten první JS vložim znova ten samej akorád to tam změnim všude na ten název toho inputu tak mi to zase bere jenom ten 2 input a ten první už ne. takže to bere vždy jenom jeden. nevim proč
Nox
Profil
Pořád si myslím, že tam máš chybu;) Postni to sem
jakubroz
Profil
dobrá. je to tady.
Tady
ted to momentálně jde pouze u 2 inputu
Nox
Profil
To je hodně šílené - dvojitá definice funkce! navíc ty řetězce se znaky jsou tam 2x zbytečně...dej všechno do jedné jak jsem psal, klidně manuálně, ale takhle se nediv, že to nejede
jakubroz
Profil
jak dát do jedné? proč to nejede?
Nox
Profil
Protože nemůžeš definovat tu samou funkci víckrát...javascript se s tím očividně docela vypořádává, jelikož druhou tu první přepíše (pokud se teda bere jen ta druhá), ale je to ultraprasárna;)
jakubroz
Profil
no takže jak jsem říkal musim tu funkci přejmenovat. a potom do toho submitu vložim jak víckrát onclick akorád pokaždý s jinou funkcí.
nebo jak by jsi to udělal aby to nebyla prasárna
Nox
Profil
NE :) Bože:)

Určitě to nepíšu poprvé -> dej to do jedné funkce! Už jsem psal i jak!

tak ok, já to napíšu:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  <meta http-equiv="content-type" content="text/html; charset=windows-1250">
  <meta name="generator" content="PSPad editor, www.pspad.com">;
  <title></title>
  <script type="text/javascript">
  sdiak="áčďéěíňóřšťúůýřžÁČĎĚÉÍŇÓŠŤÚŮÝŘŽ";
  bdiak="acdeeinorstuuyrzACDEFINOSTUUYRZ";
  pole = new Array("txt","pole2","pole3"...);

  function bezdiak(form)
  {
   for(a=0;a<pole.length;a++){
    tx="";txt=form[pole[a]].value;
    for(p=0;p<txt.length;p++)
    {
      if (sdiak.indexOf(txt.charAt(p))!=-1)
        tx+=bdiak.charAt(sdiak.indexOf(txt.charAt(p)))
      else tx+=txt.charAt(p);
    }
    form.txt.value=tx;
  }}
  </script>
  </head>
  <body>
  <form action="?">
  <textarea name="txt" cols="30" rows="4"></textarea><br>
  <input type="button" value="Odstranit diakritiku" onclick="bezdiak(form);">
  </form>
  </body>
</html>

Mělo by to jet...případně stáhni ten plugin a napiš co ti napíše
jakubroz
Profil
no tak to nejde. a ani si myslim že to nemůže jít. protože ty nenahrazuješ to txt.
všude kde je v tomhle kodu "txt"
for(a=0;a<pole.length;a++){
    tx="";txt=form[pole[a]].value;
    for(p=0;p<txt.length;p++)
    {
      if (sdiak.indexOf(txt.charAt(p))!=-1)
        tx+=bdiak.charAt(sdiak.indexOf(txt.charAt(p)))
      else tx+=txt.charAt(p);
    }
    form.txt.value=tx;

se musí nahradit za název toho mojeho inputu jinak to nejde. takže nevim. asi jedině tenhle script opravit a firebug píše tuhle chybu:
 pole = new Array("FromStn","FromStn","pole3"...);
137
Nox
Profil
Že zrovna ty víš, že to nebude fungovat;)
Navíc to máš tak nedobře udělaný, že máš stejnej název inputu jako's měl proměnnou, to txt co nahrazuju není to "txt, co je všude v kódu", ale jen to jméno inputu

před "pole" zkus dát "var "...a jinak možná se
txt=form[pole[a]].value;
musí zapsat trochu jinak, ale v podstatě si myslim, že to mám dobře
jakubroz
Profil
aha, no já neříkám že to máš špatně. ale takhle mi to nešlo. tak nevim proč
jakubroz
Profil
skusil jsem i před to dát var ale nejde to.
Hooonza
Profil
Používám javascript viz tento kód (funkční příklad)
<html><meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
<script>

function redukce (arg)  {
M = arg.value; C = M.length;
redukuj  = new Array("ě","š","č","ř","ž","ý","á","í","é","ú","ů","Ě","Š","Č","Ř","Ž", "Ý","Á","Í","É","Ú","Ů","ň","Ň","Ď","ď","ť","Ť","ó","Ó","Ä","ä","ë","Ë ","ö","Ö","ü","Ü");
red = new Array ("e","s","c","r","z","y","a","i","e","u","u","E","S","C","R","Z","Y"," A","I","E","U","U","n","N","D","d","t","T","o","O","A","a","e","E","o" ,"O","u","U");

for (i=0; i <= C-1; i++) {
M = arg.value;
r=0;

for (r=0; r<redukuj.length; r++) {
if (M.substr(i,1)==redukuj[r]) {
   x = M.substring(0,i);
   y = M.substring(i+1,C);
   arg.value = x+red[r]+y;
};};

   if (M.substr(C-1,1)==" ") {
   x = M.substring(0,C-1);
   arg.value = x;
};};};

</script>

<form name=formular>
<input type=text name=a onblur="redukce(this)">
<input type=text name=b onblur="redukce(this)">
<input type=text name=c>
<input type=text name=d>
<input type=button onclick="redukce(this.form.c);redukce(this.form.d);">
</form>


Myslím, že z toho je zřejmé, jak se text, který má být zbaven diakritiky, předává: je to argument funkce redukce.
Hooonza
Profil
Jo, je potřeba nějak zajistit, aby uživatel měl zapnutý javascript, například mu to napsat:
<noscript>Povolte si javascript, prosím.</noscript>

+ dál asi zajistit, aby formulář fungoval pouze při zapnutém javascriptu, jinak ne - např.
<input type=button onclick="a = document.formular; a.setAttribute('action', 'mujscript.php'); a.submit();" value=Odeslat>
krteczek
Profil
chyba je v tomhle: idos jede na windows-1250 a tvuj formulář na UTF-8, změnil bych kódóvání na stejné, jaké používá idos a neřešil bych odstranění diakritiky, vzláště, když je důležitá u názvů měst ;-)
jakubroz
Profil
no to já vim že je to v kodovaní. ale utf-8 je lepší a celej web kvuli tomu předělávat nebudu.
krteczek
Profil
jakubroz: tak ten formulář vlož do stránky pomocí iframe a mužeš mít jiné kodování jen pro něj, popřípadě změň kodování jen na té stránce kde bude ten formulář... není to takový problém
jakubroz
Profil
jo no iframe je řešení. ale zase ne dobrý řešení.
krteczek
Profil
jakubroz: můžeš mi zde napsat důvod proč je v Tvém případě iframe ale zase ne dobrý řešení?
Měsíček
Profil
"ale utf-8 je lepší a celej web kvuli tomu předělávat nebudu."

A na to jsi prosím přišel kde, že UTF-8 je lepší?
« 1 2

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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

0