Autor Zpráva
matata8611
Profil
Ahoj, potřeboval bych prosím aby při vyplňovaní textového pole nebylo povoleno napsat mezeru tak, aby byla zrusena jestě před odesláním formuláře. Poradíte prosím?
lionel messi
Profil
matata8611:
Ahoj, potřeboval bych prosím aby při vyplňovaní textového pole nebylo povoleno napsat mezeru tak, aby byla zrusena jestě před odesláním formuláře.

Neodporúčam, pokiaľ nechceš naštvať užívateľov, navyše tí skúsenejší dokážu kontrolu obísť.

V čom ti nevyhovuje alternatíva prejsť dáta po odoslaní formulára a nežiaduce medzery vyhádzať?
Bubák
Profil
Nechápu, k čemu by to bylo, uživatelskému vstupu nemůžeš věřit. Návštěvník stránky, ať už úmyslně, nebo omylem ti může poslat cokoliv.
Něco podobného se řešilo v Jak efektivně vkládat mezeru do inputu pro PSČ během psaní?
matata8611
Profil
Nymyslim si ze my meli byt nastvani. Jde o pole email pro prihlasovani, kdyz to tam nekdo nahodou zkopiruje i s mezerou na konci tak aby se odstranila. Zrusit ji v prubehu se mi nejak nedari (wordpress).

MYslim, ze JS by to urcite poresil.
lionel messi
Profil
matata8611:
kdyz to tam nekdo nahodou zkopiruje i s mezerou na konci tak aby se odstranila. Zrusit ji v prubehu se mi nejak nedari (wordpress).

Na tento konkrétny účel ti postačí v PHP funkcia trim, prípadne jej JavaScriptová obdoba.

Ukážka kombinujúca oba spôsoby:

<form method="post" name="formular" onsubmit="orez(document.formular.email.value)">
  Email: <input type="email" name="email">
  <input type="submit" value="Odeslat">
</form>
<script>
function orez(text) {
  return text.trim(); //oreže reťazec z oboch strán
}
</script>
<?php
if (!empty(trim($_POST["email"]))) { //skontrolujeme, či bolo pole vyplnené
  $email = trim($_POST["email"]);
  //tu bude validácia a odoslanie e-mailu
}

else {
  echo "Vyplňte prosím povinné pole E-mail."; //vypisovanie chýb týmto spôsobom nemusí byť dvakrát rozumné, v prípade väčších formulárov je lepšie najprv ich naskladať do poľa, pre jednoduchosť vynechávam
}
?>
juriad
Profil
lionel messi:
trim v JS funguje až od IE9. A funkci trim musíš v JS i zavolat, nestačí uvést její jméno. Navíc tu ořezanou hodnotu nikde nepoužiješ.
lionel messi
Profil
juriad:
Navíc tu ořezanou hodnotu nikde nepoužiješ.

To mala byť len ukážka použitia (priznávam, že nevydarená).

A funkci trim musíš v JS i zavolat, nestačí uvést její jméno.

Opravil som.

trim v JS funguje až od IE9.

Ďakujem za doplnenie, pôvodne som prehliadol. V tom prípade na úpravu e-mailového poľa postačí použitie klasickej metódy replace.
matata8611
Profil
Ahoj kodéří,
dospěl jsem k tomuto, ale potřeboval bych použítí bez jquery jen v čistém js... poradítd prosím?
http://jsfiddle.net/2csf7/68/
anonymníí
Profil *
matata8611:
Výborně, a co jsi zkusil? Přepsat 5 řádků z jQuery do čistého JS je otázkou asi 10 minut, pokud budeš 9 minut věnovat přemýšlení. Zkus to.
matata8611
Profil
neumím js...
Keeehi
Profil
matata8611:
neumím js...
Možná tě to překvapí, ale ten tvůj kód javascript je. Ale rozumím ti, nevíš jaké funkce máš použít které nejsou přidané knihovnou jQuery. Řešení je jednoduché. Zaplať si někoho, kdo to ví, nebo se to nauč.

Ale úplně nejlepší varianta by byla se naučit s WordPressem a vyřešit to v PHP. Pak nejsi limitovaný podporou javascriptu u uživatele.

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: