2014-02-21 21 views
2

有人可以幫助我。停止輸入提交表格 - 得到奇怪的結果

http://www.liquidlizard.net/jobs/search < - 此頁上我有一個輸入,人們可以進入一個位置,當他們按下回車鍵或點擊提交按鈕,我運行一個函數進行地理編碼,他們已經鍵入的位置,更新一些隱藏的緯度經度輸入,然後才提交表單。

問題是,雖然它在你點擊按鈕時工作正常,但由於某些原因,當你點擊返回時(儘管發生相同的代碼),它不能更新緯度輸入,因爲當頁面重新加載原始位置而不是在地圖

這對新的位置是我使用的代碼:

$('.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."); 
     } 
    }); 
} 

所以基本上,當我點擊提交按鈕,位置被地理編碼和緯度& LNG輸入被更新表單提交。

此外代碼是爲了等待輸入鍵,然後導致它點擊提交按鈕應按順序設置相同的代碼,但由於某種原因,當頁面重新加載舊的位置是在地圖上(如果你點擊提交新的位置就在那裏)。誰能告訴我有什麼區別,爲什麼會發生這種情況?

謝謝

回答

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

這一直做我的頭的年齡。感謝提示,排序我的所有問題,現在我可以睡在今晚:) –