3

ボタンが関数を呼び出すフォームがありますonclick:

<form>
    <input type="text" id="start" name="start">
    <input type="button" onclick="calcRoute();" value="Go">
</form>

function calcRoute() {
    var start = document.getElementById('start').value;
      var end = "My Address in Rome";
      var request = {
        origin:start,
        destination:end,
        travelMode: google.maps.DirectionsTravelMode.TRANSIT
      };
    directionsService.route(request, function(response, status) {
      if (status == google.maps.DirectionsStatus.OK) {
        directionsDisplay.setDirections(response);
      }
    });
}

Goボタン ( )をクリックすると、すべてのブラウザで正常に動作します<input type="button"><input type="text">に入力してキーボードを押すとENTER(または、たとえばGoiOSキーボードのボタンを押すと)、そうではありません。つまり、キーボードから押すのinput type="button"ではなく、 を押すと機能ENTERします。どうすればそのように機能させることができますか?

編集:jQueryやその他のフレームワークではありません。:)

4

5 に答える 5

3

そのインラインJavaScriptを削除して、そのボタンを実際の送信ボタンにするだけです。その後、送信されているフォームを簡単にキャプチャできます (キーを入力するか、送信ボタンを使用します)。

form.addEventListener('submit', calcRoute);

デモ: http://jsfiddle.net/ghK4P/

于 2013-04-28T13:43:26.120 に答える
0
<input type="text" id="start" name="start" onkeypress="return calcRoute(event)">

次のようにスクリプトを変更します。

function calcRoute(e) {
    if (e.keyCode == 13) {
        //your code
    }
}
于 2013-04-28T13:49:08.023 に答える
0

jqueryを使用している場合は、おそらくコードにこれを追加してください

$(document).ready(function() {
$("#start").bind('keyup',function(event){
    if(event.keyCode == 13){
        $("#start").click();
    }
});
});

テキストボックスでEnterキーを押すと、urボタンクリック機能がトリガーされます。

jqueryを使用していない場合は、これを試してください

<input type="text" id="start" name="start" onkeydown="if (event.keyCode == 13) document.getElementById('fire_calRoute').click()">
<input type="button" id='fire_calRoute' onclick="calcRoute();" value="Go">

これを試して、問題が解決することを願っています。

于 2013-04-28T13:43:20.710 に答える
0

これを試して:

<form onsubmit="calcRoute()">
    <input type="text" id="start" name="start">
    <input type="button" onclick="calcRoute();" value="Go">
</form>

私はそれが両方で動作すると確信しています

于 2013-04-28T13:31:24.650 に答える