jquery模拟在google maps api上输入密钥

时间:2017-06-20 08:28:46

标签: javascript jquery google-maps

使用google maps api并尝试按select option value搜索位置,实际上我将选择选项文字移动到谷歌地图搜索框并且效果很好,但谷歌地图搜索框需要enter才能执行操作现在我想在这个搜索框上模拟enter key,一切看起来不错,但这个模拟不能在这个搜索框上运行,任何解决方案?

 $('#test').change(function() {
          var val = $('#test option:selected').text();
          $('#pac-input').val(val);
          var e = jQuery.Event("keydown");
          e.which = 13;
          $("#pac-input").trigger(e);
        });

        $("#pac-input").keydown(function(e) {
          if (e.which = 13) {
            alert('Enter Pressed');
          }
        });

JSFiddle

2 个答案:

答案 0 :(得分:0)

如果(e.which = 13){是导致此问题的行 将此替换为 if(e.which == 13){,这可以解决您的问题。在第一种情况下,由于您要分配值,因此对于所有情况,它始终返回true。 == 会检查它的真实性,而不是简单地指定它。

答案 1 :(得分:0)

我找到了解决方案,实际上首先需要focus然后keydown功能,还应该使用google.maps.event.trigger

 $('#test').change(function() {
  var val = $('#test option:selected').text();
  $('#pac-input').val(val);

  var input = document.getElementById('pac-input');
  google.maps.event.trigger(input, 'focus')
  google.maps.event.trigger(input, 'keydown', {
    keyCode: 13
  })
});

<强> JSFiddle

相关问题