使用单选按钮onclick和javascript函数动态填充数字字段?

时间:2013-10-11 09:21:27

标签: javascript php gravity-forms-plugin

我有三件事: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";
}

2 个答案:

答案 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">