2011-10-04 61 views
1

嗨有無論如何使用Javascript來獲取用戶的當前位置和自動填充字段的形式,如電話國家代碼(例如在新加坡,它是+65)和區號?Javascript電話號碼自動完成

+1

您需要用戶的權限才能使用HTML5的位置API。通過查看IP地址(使用服務器端語言,如PHP),然後檢查IP在數據庫中的位置(如[this](http://sourceforge.net/ projects/geoip的/))。 –

回答

1

這真的很困難,而且我建議不要這樣做,因爲它只需很少的獎勵就可以付出很多努力。最好的方式(對用戶來說最流暢)是使用PHP/ASP/Ruby-on-Rails /任何方式獲取用戶IP,並查詢一個免費提供的Geo-IP數據庫(Google it),以便將其匹配到一個國家,然後創建您自己的國家代碼數據庫(使用this或類似的)。

如果你真的想用JavaScript做它,它只會讓你在新的瀏覽器中做它,它會提示用戶你想知道他們的位置......很多人會奇怪爲什麼你要求這個,然後點擊否。

// first, check it's supported 
if (navigator.geolocation) { 
    navigator.geolocation.getCurrentPosition(insertCountryCode); 
} 

insertCountryCode是您傳遞的函數。爲什麼?因爲提示用戶允許你的網站知道他們的位置是非模態的,這意味着頁面將在等待響應時繼續運行,所以當他們做出響應時的功能將是異步(在正常流程之外)。該功能是您查找其位置並插入國家/地區代碼的位置。在此函數中,使用Google Maps API並傳遞latlng參數以獲取國家/地區......然後您需要找到另一個查找服務,它可讓您找出撥號代碼。

我解釋這個的原因是爲了告訴你它有多難。一個更簡單的替代方案是將一個下拉框與

<option value="+65">Singapore</option> 

並將值插入到電話號碼框中。這就是我建議你做的。