2013-06-05 2 views
0

Я написал этот следующий фрагмент кода с помощью различных веб-сайтов. Фрагмент кода выглядит следующим образом:Установка значения параметра HTML-формы из функции обратного вызова

function getLocation() 
{ 
    var visitorGeolocation = new geolocate(false, true, 'visitorGeolocation'); 

//Check for cookie and run a callback function to execute after geolocation is read either from cookie or IPInfoDB API 
    var callback = function() 
    { 
     var city=document.getElementById("city"); 
     city.value = visitorGeolocation.getField('cityName'); 
     alert('Visitor city name : ' + visitorGeolocation.getField('cityName')) 
    }; 
visitorGeolocation.checkcookie(callback); 
} 
</script> 
</head> 
<body onload="getLocation()"> 
<form name="frm" method="post" action="result.jsp?page=1"> 
<input type="text" name="myQuery"> 
<input name="city" id="city" type="hidden" value="city"> 
<input type="submit" name="submit" value="Submit"> 
</form> 

Я хочу передать значение города молча во время отправки формы, так что я могу получить значение города в странице результатов. Вот почему я установил его тип как «скрытый». Но я не могу понять, как установить значение города при отправке формы, потому что я получаю значение города в функции обратного вызова, как показано выше. Я не знаю, как это сделать.

Я новичок в веб-программировании. У меня очень мало информации о функции обратного вызова. Поэтому, если кто-нибудь поможет мне решить эту проблему, я буду очень благодарен. Спасибо.

+0

Извините, но предупреждение ('название города Visitor:' + visitorGeolocation.getField ('CITYNAME')) напечатать город правильно? –

+0

Да, он печатает город правильно. – Joy

ответ

1

Я думаю, что есть дилемма, потому что есть

  1. <input name="city" id="city" type="hidden" value="city"> с value=city
  2. вар город = document.getElementById ("город"); city.value = visitorGeolocation.getField ('cityName');

Тогда я предлагаю, удалить value="city" внутри <input name="city" id="city" type="hidden">, удалить name="submit" value="Submit" или только name="submit" если вы должны изменить кнопку текста.

Используйте эту функцию:

function getLocation() 
{ 
    var visitorGeolocation = new geolocate(false, true, 'visitorGeolocation'); 

//Check for cookie and run a callback function to execute after geolocation is read either from cookie or IPInfoDB API 
    var callback = function() 
    { 
     document.getElementById("city").value = visitorGeolocation.getField('cityName'); 
     alert('Visitor city name : ' + visitorGeolocation.getField('cityName')); 
    }; 
visitorGeolocation.checkcookie(callback); 
} 
+0

Извините, но предупредите ('Имя посетителя:' + visitorGeolocation.getField ('cityName')) напечатайте город правильно? Если это принятый ответ, наберите свой ответ, как принято отвечать ... –

+0

Тогда эта функция @Joy –

+0

На самом деле я использовал ipinfodb.com для поиска геолокации. Большое спасибо, сэр :) – Joy

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