Я знаю, что это кажется базовым c, но выслушайте меня, я пытался выяснить это для хорошего куска дня, и что-то просто не работает.
Я пытаясь заменить значение скрытого поля формы на IP-адрес посетителя. Это поле в вопросе:
<label class="previewLabel" for="awf_field-106493013">ipaddress:</label>
<div class="af-textWrap"><input type="text" id="awf_field-106493013" class="text" name="custom ipaddress" value="" onfocus=" if (this.value == '') { this.value = ''; }" onblur="if (this.value == '') { this.value='';} " tabindex="503" /></div>
И вот код, который у меня есть на моей странице в настоящее время:
<script type="text/javascript">
function getUrlParam(name, url) {
if (!url) url = window.location.href;
name = name.replace(/[\[\]]/g, '\\$&');
var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'),
results = regex.exec(url);
if (!results) return null;
if (!results[2]) return '';
return decodeURIComponent(results[2].replace(/\+/g, ' '));
}
var tid = getUrlParam("adid");
var date = Date(Date.now());
jQuery(document).ready(function () {
(function (){
jQuery.ajax({
async: false,
type: 'GET',
url: 'https://api.ipify.org/?format=json',
success: function(data) {
//callback
console.log(data.ip) //This works properly;
jQuery('#awf_field-106493013').val(data.ip); //This does not work
}
});
}());
jQuery('#awf_field-106493014').val(date.toString()); //This works properly
if(tid != null){
jQuery('#awf_field-106493015').val(tid.toString()); //This works properly
}else{
jQuery('#awf_field-106493015').val("nulltid"); //This works properly
}
});
</script>
Я также пытался сделать вызов и заменить на jQuery.get
и замена на document.getElementById
. Все остальные поля заменяются, кроме этого одного поля IP, и, как говорится в комментарии в коде, IP-адрес даже правильно печатается в консоли, прежде чем он будет сброшен при попытке замены.
Я также пытался изменить async
с false
на true
, но это также не сработало.
Я понятия не имею, почему это ведет себя так, как есть, и мне нужна помощь.
Спасибо!