2011-10-04 127 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> 

并将值插入到电话号码框中。这就是我建议你做的。