以下代码将成功捕获客户端IP地址
var clientIP;
$.getJSON("http://jsonip.appspot.com?callback=?",
function (data) {
clientIP = data.ip;
});
$("form").submit(function () {
alert(clientIP);
});
然而,这会在表单加载时捕获ip地址。有可能重构这个,以便只有当用户按下sumbit时才调用JSON函数吗?例如
$("form").submit(function () {
var clientIP = <somehow call getJSON function to get client ip>;
alert(clientIP);
});
答案 0 :(得分:1)
您需要等待回复:
$("form").submit(function () {
$.getJSON("http://jsonip.appspot.com?callback=?",
function (data) {
var clientIP = data.ip;
alert(clientIP);
});
// prevent form submission
return false;
});
答案 1 :(得分:0)
var clientIP;
function getIP(form) {
$.getJSON("http://jsonip.appspot.com?callback=?",
function (data) {
clientIP = data.ip;
alert(clientIP);
});
}
$("form").submit(function (e) {
e.preventDefault(); // prevent default submission
getIP(this);
});
我将表单传递给getIP()
,以便您可以在该功能中提交表单。
答案 2 :(得分:0)
var clientIP; // declare it global otherwise you wont be able to use it from outside.
$("form").submit(function () {
$.getJSON("http://jsonip.appspot.com?callback=?",
function (data) {
clientIP = data.ip;
});
return false; // return false so the form doesnt actually submit
});