0

入力フィールドでEnterキーを押したときに関数を呼び出したい。問題は、現時点でページをリロードするだけで、JavaScript を呼び出さないことです。ボタンを押すと、JavaScript は問題なく動作します。Enterキーを押したときに、同じ結果を得たいと思います。

これが私のフォームです

<form onSubmit="changeView()">
<input type="text" value="London" name="region" id="region">
<input type="button" onClick="changeView()" name="mySubmit" value="Search" >
</form>

これもテキストフィールドに入れてみましたonKeydown="Javascript: if (event.keyCode==13) changeView();

しかし、それは本当に役に立ちませんでした。これは私のJavaScript関数です

function changeView(){
var region = document.getElementById('region').value;
$.ajax({
    type: 'GET',
    url: 'webservice.php',
    data: {region: region},
    success: function(response, textStatus, XMLHttpRequest) { 
        alert("SUCCESS");
        map.panTo(new L.LatLng(response[0].lat,response[0].lon));
    }
});
return false;
}
4

2 に答える 2

0

HTML:

<form action="webservice.php" method="post">
    <input type="text" value="London" name="region" id="region">
    <input type="submit" name="mySubmit" value="Search" >
</form>

Javascript:

$('#region').on('keydown', function(e) {
     if (e.which === 13) {
                $(this).parent('form').submit(); 
            }

    });


    $('.form').on('submit', function(e) {
        var self = $(this);

         $.ajax({
                type: self.attr('method') ,
                url: self.attr('action'),
                data: {region: $('#region').val()},
                success: function(response, textStatus, XMLHttpRequest) { 
                    alert("SUCCESS");
                    map.panTo(new L.LatLng(response[0].lat,response[0].lon));
                    }
            });
        e.PreventDefault();
        return false;
    });
于 2013-04-11T18:38:45.770 に答える
-1

jQuery を使用しているようですが、テキスト ボックスにイベントを入札することだけを考えましたか?

このようなもの

$(document).ready(function(){ // binds when the document has finished loading
    $("#region").on('keypress', function(e){
        if (e.which === 13){  // enter key
            changeView();
        }
    });
});
于 2013-04-11T18:37:17.057 に答える