2014-02-21 3 views
2

может кто-то помочь мне.Остановка ввода, представляющая форму - получение странных результатов

http://www.liquidlizard.net/jobs/search < - на этой странице У меня есть вход, где люди могут вводить местоположение и когда они нажимают кнопку ввода или на кнопку отправки. Я запускаю функцию для геокодирования местоположения, в которое они ввели, обновить некоторые скрытые латинские буквы входы и только затем отправить форму.

Проблема заключается в том, что при нажатии кнопки она работает нормально, по какой-то причине, когда вы нажимаете кнопку «Возврат» (хотя и тот же код), он не должен обновлять входы lat lng, потому что когда страница перезагружает исходное местоположение вместо новое место в на карте

Это код, я использую:

$('.submitButton').click(function() { 
    geocodeSearch(); 
}); 
$('.formInputTextPostcode').bind("enterKey",function(e){ 
    $(".submitButton").click(); 
}); 
$('.formInputTextPostcode').keyup(function(e){ 
    if(e.keyCode == 13) 
    { 
     $(this).trigger("enterKey"); 
    } 
}); 
function geocodeSearch(){ 
geocoder.geocode({ 
     address: $('#postcodeViolet').val()+' UK' 
    }, function(results, status){ 
     if(status == google.maps.GeocoderStatus.OK){ 
     var geoPoint = new google.maps.LatLng(results[0].geometry.location.lat(), results[0].geometry.location.lng()); 
      map.setCenter(geoPoint); 
      circle.setCenter(geoPoint); 
      marker.setPosition(geoPoint); 
      $('#lattitude').val(geoPoint.lat()); 
      $('#longitude').val(geoPoint.lng()); 
      $("#searchForm").submit(); 
     } else{ 
      alert("Can not geolocate this address."); 
     } 
    }); 
} 

Так в основном, когда я нажимаю на кнопку отправки, место получает геокодированные и LAT & LNG входы обновляются то формы.

Кроме того, код предназначен для ожидания ввода ключа, а затем вызывает его нажатие кнопки отправки, которая должна последовательно указывать один и тот же код, но по какой-то причине, когда страница перезагружает старое местоположение на карте (если вы щелкните, чтобы отправить новое местоположение). Может ли кто-нибудь сказать мне, в чем разница и почему это происходит?

thanks

ответ

0

Какой бы вы браузер не используете? По-видимому, ключевым событием является различие между браузером. Также, если вы хотите остановить ввод, чтобы отправить форму, вы должны предотвратить это событие, используя preventDefault().

Попробуйте это:

$('.formInputTextPostcode').bind("keyup keypress", function(e) { 
    var code = e.keyCode || e.which; 
    if (code == 13) { 
     e.preventDefault();    
     $(this).trigger("enterKey"); 
    } 
}); 

из jquery disable form submit on enter

+0

Это делали мою голову в течение веков. Спасибо за подсказку, что отсортировал все мои проблемы, и теперь я могу спать сегодня вечером :) –

Смежные вопросы