21. září bude sraz! Od 18.00 v restauraci Tradice v Praze u Anděla
Autor Zpráva
leorond
Profil
Ahoj, potřeboval bych udělat v JS podmínku aby například

pokud obsahuje slovo blbec tak se zobrazila hláška například Zpráva obsahuje nedovolené slovo!

Zkoušel jsem to takto

<script type="text/javascript">
function kontrola() {
  var zprava="";  // zpráva o chybách

  if(document.getElementsByName("zprava")[0].value=="blbec") {zprava+="Zpráva obsahuje nedovolené slovo\n";}
  
  if(zprava=="") {return true;} // data budou odeslána
  else {
    alert(zprava);  // zobrazení zprávy o chybách
    return false;   // data nebudou odeslána
  }
}
</script>

ale bohužel mi to nefunguje. Jsem v JS začátečník a pokud takto udělám třeba ochranu proti nevyplnění pole tak to funguje dobře, tedy za předpokladu že value=="". Myslel jsem že pokud tam zadám třeba nějakou hodnotu jako slovo tak to bude fungovat.

Děkuji
Keeehi
Profil
Ale ono to funguje. Jen místo kontroly, zda zpráva obsahuje nějaký podřetězec kontroluješ, za je mu přímo rovna.

To co chceš je
document.getElementByName("zprava")[0].value.indefOf("blbec") != -1
leorond
Profil
Děkuji hned to jdu vyzkoušet :)
Chamurappi
Profil
Reaguji na leoronda:
Chtěl bych podotknout, že metoda getElementsByName téměř nikdy není potřeba. Pokud je name na elementu, který atribut name nemá dovolený (třeba <div>), tak je toto hledání zdrojem nekompatibilit, a pokud je na formulářovém prvku, přijde by mi snazší použít document.názevFormuláře.názevPolíčka (případně jde formulář najít jinou cestou, pokud nemá name, každopádně reference na formulářový prvek je na něm k dispozici).
leorond
Profil
Ještě bych se chtěl zeptat na toto, zda to bude fungovat jako kontrola zda je již v DB určitý záznam, uziv. jmeno jsem zvolil jen jako příklad .

<?php
$result  =  mysql_query("SELECT * FROM uzivatele WHERE user = '".$_POST["jmeno"]."'");
$row   =  mysql_fetch_assoc($result);
?>
<script type="text/javascript">
function kontrola() {
  var zprava="";  // zpráva o chybách
 
  if(document.getElementsByName("jmeno")[0].value.indexOf("<?=htmlspecialchars($row["user"])?>") != -1) {zprava+="Uživatelské jméno již existuje!\n";}
  
  if(zprava=="") {return true;} // data budou odeslána
  else {
    alert(zprava);  // zobrazení zprávy o chybách
    return false;   // data nebudou odeslána
  }
}
</script>

Děkuji
anonymníí
Profil *
leorond:
Proč to nezkusíš, je to rychlejší, než čekat na odpověď na diskusi.

Jen upozorním, že Keeehi se překlepl a ty jsi bezmyšlenkovitě ten překlep naimplementoval i k sobě... správně je indexOf.
leorond
Profil
Ještě jsem to nezkoušel, právě mám na VPS stádo techniků tak se snažím zjistit si tyto informace dopředu ale díky za upozornění anonymníí nevšiml jsem si toho. Právě jsem si o tom něco našel na webu.
leorond
Profil
Trochu jsem nad tím přemýšlel a asi dělám chybu v tom že bych měl odkázat tu podmínku na script kde bude výše uvedený php kód že?

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:

0