Jquery 当表单有值时自动提交表单

Jquery 当表单有值时自动提交表单,jquery,jquery-mobile,Jquery,Jquery Mobile,我正在开发一个移动应用程序,我有一个初始页面,可以获取用户的地理位置。我想在我们成功获得用户地理位置后自动提交此表单。我正在使用jquery和jquery mobile,如果有帮助的话。谢谢 </head> <body> <div id="location"> <form action="/location" method="POST" id="location" name="location"> <input type

我正在开发一个移动应用程序,我有一个初始页面,可以获取用户的地理位置。我想在我们成功获得用户地理位置后自动提交此表单。我正在使用jquery和jquery mobile,如果有帮助的话。谢谢

</head> 
<body>
 <div id="location">
 <form action="/location" method="POST" id="location" name="location">
        <input type="text" id="lat" name="lat" />
        <input type="text" id="long" name="long" />
        <input type="submit" value="Set my location" data-theme="b" /></form>

      </div>
      <script>
        navigator.geolocation.getCurrentPosition(
          function(pos) {
            $("#lat").val(pos.coords.latitude);
            $("#long").val(pos.coords.longitude);
            load();
          }
        );
      </script>


</body>

navigator.geolocation.getCurrentPosition(
功能(pos){
$(“#纬度”).val(位置坐标纬度);
$(“#长”).val(位置坐标经度);
加载();
}
);

您可以选择setTimeOutfunction()

以下是您可能喜欢的链接:

只需使用settimeout函数调用一个函数,该函数将检查该值,如果您有该值,则提交表单


希望这有帮助。

更好的解决方案是为两个输入设置一次更改事件

$(document).ready(function() {
    var state1 = false;
    var state2 = false;
    var sbm = function(form) {
        form.submit();
    };
    $('input#lat')
        .change(function() {
            state1 = true;
            if (state1 && state2) 
                sbm($(this).parent());
        });
    $('input#long')
        .change(function() {
            state2 = true;
            if (state1 && state2) 
                sbm($(this).parent());
        });
});

Kacper这是一个很好的建议,但当我尝试它时,它不起作用。我必须指定表单吗?看起来它只适用于父窗体。这应该在该区域吗?Kacper实际上它正在工作,但它只有在我手动更改输入时才起作用。现在,当页面加载gelocation信息时,我的代码正在更改表单的输入值。当脚本更改输入时,它似乎不会提交。请告诉我load()函数在代码中的作用。也许我能帮你。Kacper不确定你上面看到的代码是我正在使用的。从获取lat&long的示例中获得。您可以将名为“onchange”的函数中的代码放入由navigator.geolocation.getCurrentPosition调用的匿名函数中。要确保表单在设置数据之前不会br submitted,可以使用jQuery.queue()方法。