我有三件事:1。两个数字字段(来自标准类),我想动态填充。 2.一个Javascript函数使用geolocator提取坐标; 3.单击一个单选按钮,数字字段将动态填充
以下是我用来执行任务的代码,但它不起作用。你能帮帮我吗?我在做什么错?提前感谢您的帮助
**我已经检查过我的geolocator功能是否正常工作。我想,我的问题在于代码,它提取代码并动态填充数字字段。
add_filter('gform_field_value_longitude', 'populate_longitude');
function populate_longitude($value){
?>
<script type="text/javascript">
$(document).ready(function() {
var x=document.getElementById("latitude");
var y=document.getElementById("longitude");
if(navigator.geolocation){
navigator.geolocation.getCurrentPosition(showLocation, errorHandler, {enableHighAccuracy:false, maximumAge:60000, timeout:27000});
}else{
alert('Votre navigateur ne prend malheureusement pas en charge la géolocalisation.');
}
});
function showLocation(position){
x.value=position.coords.latitude;
y.value=position.coords.longitude;
}
<input type="radio" value="extract_coordinate" onclick="populate_longitude;">
</script>
<?php
return "$y";
}
答案 0 :(得分:0)
该代码有效吗?与在浏览器中打开页面时一样,它是否显示所需的所有字段?我不知道你正在使用的插件,但似乎代码可能有语法错误。
引起我注意的第一件事是,在onclick事件中,你实际上并没有调用该函数。试试这个:
<input type="radio" value="extract_coordinate" onclick="populate_longitude();">
答案 1 :(得分:0)
你有这方面的进展吗?如果您需要修复OP中的代码而不是您提供的链接中的代码,请检查以下内容。你的功能应该在&lt; * script&gt;里面。标记,因为你需要从onclick事件调用它,所以它应该是Javascript。您还需要删除document.ready并改为使用常规函数。
//add_filter('gform_field_value_longitude', 'populate_longitude');
<script type="text/javascript">
function populate_longitude(){
var x=document.getElementById("latitude");
var y=document.getElementById("longitude");
if(navigator.geolocation){
navigator.geolocation.getCurrentPosition(showLocation);
}else{
alert('Votre navigateur ne prend malheureusement pas en charge la géolocalisation.');
}
}
function showLocation(position){
document.getElementById("latitude").value = position.coords.latitude;
document.getElementById("longitude").value =position.coords.longitude;
}
</script>
<input type="radio" value="extract_coordinate" onclick="populate_longitude();">
<input type="text" value="" id="latitude">
<input type="text" value="" id="longitude">