[JS] Form met autosuggest submit voorkomen

Pagina: 1
Acties:

  • mrfatmen
  • Registratie: Februari 2001
  • Laatst online: 22:40
Wij hebben een autosuggest script gemaakt welke in een form helpt bij het invullen van velden.
Maar als je nu uit de lijst iets kiest en dan op enter drukt dan submit Mozilla/Firefox gelijk het formulier.
Is het mogelijk dit te voorkomen?

In "Internet Explorer" gaat dit wel goed.
Alleen mozilla / firefox weigert dienst.

Ik gebruik het volgende stuk code:


Kijken of er een welke toets ingedrukt word en wat ik moet doen.
Java:
1
2
3
4
5
6
7
8
9
10
elem.onkeydown = function(ev)
    {
        var key = me.getKeyCode(ev);

        switch(key)
        {
            case ENTER:
            me.useSuggestion();
            break;
    };


Afvangen vang toest voor mozilla en ie
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    this.getKeyCode = function(ev)
    {
        if(ev)          //Moz
        {
            alert("aaa");
            if (ev.keyCode == '13') me.cancelEvent(ev)
            return ev.keyCode;
        }
        if(window.event)    //IE
        {
            if (window.event.keyCode == '13') me.cancelEvent(ev)
            return window.event.keyCode;
        }
    };



De cancel routine
Java:
1
2
3
4
5
6
7
8
9
10
11
12
    this.cancelEvent = function(ev)
    {
        if(ev)          //Moz
        {
            ev.preventDefault();
            ev.stopPropagation();
        }
        if(window.event)    //IE
        {
            window.event.returnValue = false;
        }
    }

Doe ik wat fout of vergeet ik iets?

Heeft uw auto pijn? Ga dan naar de onderdelenlijn
Het bedrijf waar ik met veel plezier werk - Mijn eigen vertrouwde domein


  • r0bert
  • Registratie: September 2001
  • Laatst online: 26-04 17:38
waar staan 'elem' en 'me' voor? en je krijgt nu steeds '13' terug en geen ENTER. This is weer een method van 'me'? Dus 'me' is geinitaliseerd als object van die methods (of geattached?)?

edit: om enter->submit tegen te gaan, moet je toch gewoon in je formtag de onkeypress afvangen als deze de keycode van enter heeft (false return op de event)

[ Voor 114% gewijzigd door r0bert op 14-07-2005 12:16 ]


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:21

crisp

Devver

Pixelated

onkeydown kan je niet cancellen; dan moet je onkeypress gebruiken...

Intentionally left blank


  • mrfatmen
  • Registratie: Februari 2001
  • Laatst online: 22:40
bij het aanroepen van de class autosuggest word elem meegeven.

me word gelijk gesteld aan this om zo vanuit elem een functie in autosuggest aan te roepen.

Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
function AutoSuggest(elem, suggestions)
{

    //The 'me' variable allow you to access the AutoSuggest object
    //from the elem's event handlers defined below.
    var me = this;

    //A reference to the element we're binding the list to.
    this.elem = elem;

    var ENTER = 13;

[.....]


Ik heb nu ook elem.onKeyPress toegevoegt maar ook dit helpte niet. :'(

[ Voor 4% gewijzigd door mrfatmen op 14-07-2005 12:29 ]

Heeft uw auto pijn? Ga dan naar de onderdelenlijn
Het bedrijf waar ik met veel plezier werk - Mijn eigen vertrouwde domein


  • mrfatmen
  • Registratie: Februari 2001
  • Laatst online: 22:40
Mijn fout hij werkt nu wel onkeypress heeft het probleem opgelost, mijn dank aan jullie is groot.

Heeft uw auto pijn? Ga dan naar de onderdelenlijn
Het bedrijf waar ik met veel plezier werk - Mijn eigen vertrouwde domein


  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 14:58
Als je minimaal 2 velden hebt en geen submit button wordt het formulier toch nooit vanzelf verzonden?
Pagina: 1