0 Daumen
1,6k Aufrufe

Ich habe ein input Textfeld und möchte, dass der darin eingegebene Wert mit Enter-Taste durch den Benutzer abgesendet wird. Das Senden soll mittels Ajax erfolgen, kein HTML Form-Submit.

Mein Inputfeld sieht so aus:

<input type="text" id="eingabewert" value="">


Ich habe versucht, den keypress-Event abzufangen mit if(e.which==13), aber das hat nicht geklappt.

Avatar von

1 Antwort

0 Daumen

Das geht mit einem keydown oder keyup Event:

<input type="text" id="eingabewert" value="" 
placeholder="klick hier enter" autofocus>

$('#eingabewert').keydown( function(e)
{
    if(e.keyCode == 13)
    {
        alert('Enter-Taste gedrückt');
        do_ajax_call();
    }
});

// ein Beispiel für einen Ajax call
function do_ajax_call()
{
var inputvalue = $('#eingabewert').val();
var extradata = "Whatsoever, your choice";

    $.ajax({
        url: '/ziel', // modifizieren
        type: 'post',
        data: { value_in: inputvalue, someid: extradata },
        success: function(data)
        {
            console.log(data);
            if(data=='success')
        {
        // do your stuff
            }
        },
        error:function()
        {
            console.log('server problem');
        }
    });
};

Selbst probieren: https://jsfiddle.net/kai_noack/brdpfvfs/4/

Das sollte helfen.

Avatar von

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community