Autor Zpráva
motorcb
Profil
Zdravim.

Byl jsem přesměrován sem na tyto stránky z Nette fora, že prý můj příspěvek není o Nette :-)

Jak vypnu odeslání formuláře v Nette 2.1 na klávesu ENTER? Chci aby když ve formuláři stisknu klávesu ENTER, nebyl formulář odeslán.

Jde to? Díky za rady
preca1
Profil
Zdravim,
nepředpokládam, že na to v Nette bude speciální přepínač. De to udělat i jinak, ale proč bys to chtěl zablokovat? Odeslání formuláře pomocí enteru je docela zaběhnutá praktika.
Co by se mělo stát když uživatel zmáčkne enetr?
Jan Tvrdík
Profil
motorcb:
Viz např. stackoverflow.com/questions/895171/prevent-users-from-submitting-form-by-hitting-enter
motorcb
Profil
preca1:
Chtěl bych aby se po stisku ENTER nestalo nic


Jan Tvrdík:
    $("#naseptavac").keyup(function (e) {
        if (e.keyCode == 13) {
            alert("enter");
            e.preventDefault();
            return false;
        }
    });
Bohužel nefunguje. Vyskočí alert, ale stránka se refreshne.


Ukázka kódu pro nasimulování:

    protected function createComponentTestForm()
    {
        $form = new Form;
        $form->addText( 'naseptavac', 'Text:' );

        $form->addSubmit( 'send', 'Uložit' );
        $form->onSuccess[] = $this->testFomrSucceeded;

        return $form;
    }

    public function testFomrSucceeded( $form )
    {
        $this->redirect( "this" );
    }    

$(function() {

    $("#frm-testForm-naseptavac").keydown(function (e) {
        if (e.keyCode == 13) {
            alert("enter");
            e.preventDefault();
            return false;
        }
    })
};
_es
Profil
motorcb:
Chtěl bych aby se po stisku ENTER nestalo nic
Aký to bude mať pre návštevníka prínos? Aký prvok formulára má byť aktívny vtedy, keď ten enter nemá fungovať?
motorcb
Profil
_es:
Enter bude fungovat na výběr první našeptávané položky. Takhle se rovnu odešle celý formulář.
motorcb
Profil
_es:
Formulář má samozřejmně odesílací tlačítko, kterým se odešle.
Jan Tvrdík
Profil
motorcb:
Ukázka kódu pro nasimulování:
PHP do toho vůbec netahej, to s tím nemá nic společného. Spíš pošli, jak vypadá vygenerovaný HTML kód, ideální jako živou ukázku.

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: