gpt4 book ai didi

jquery *在*第三方ajax验证之后提交

转载 作者:行者123 更新时间:2023-12-01 01:30:22 24 4
gpt4 key购买 nike

我有一个表单可以从用户那里获取地址,并将该地址发送到我的服务器。目标是使用 Google 的地理编码来确保地址是唯一且可地理编码的,然后再用它打扰服务器。

我可以成功绑定(bind) form.submit、地理编码、获取我的地标、确保它们是否唯一......但我完全无法在我的回调中进行提交工作。这让我觉得我不应该在回调中这样做,但这就是我在这里的原因。

基本上,我需要一种方法来提交表单调用我的验证,这会触发回调 - 如果/当回调成功时,回调需要能够提交表单(不是 AJAX 帖子,谢谢)而不再次触发验证。

接下来是从内存中输入的伪代码。我已经尝试过 .unbind('submit').submit() 和直接调用 DOM 提交,但都不起作用,但我将它们都包含在这里是为了它的 hell .

<html>
<head>
<!-- .. load google maps and jquery .. -->
<script type="text/javascript">
$(document).ready(function() {
// ... insure Google, get geocoder, etc.
geocoder = ...;

function geocodeCallback(result) {
// .. check if result was a success, and unique
if (.. yes, success ..) {
// use my not-included snazzy function to normalize the address
$('#loc').val(normalize(result.Placemark[0]));
$('#myform').unbind('submit');
$('#myform')[0].submit(); // see note above
} else {
// do something magically useful
}
}

$('#myform').bind('submit', function() {
geocoder.getLocations($('#loc').val(), geocodeCallBack);
return false;
});
});
</script>
</head>
<body>
<form id="myform" method="post" action="thispage.html">
<input type="text" name="loc" />
<input type="submit" name="sub" value="Submit" />
</form>
</body>
</html>

最佳答案

基本上,您需要设置一些哨兵值来表明它是有效的。例如:

<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">
num = 1;

$(function() {
$("#form").submit(function() {
if ($("#valid").val() == "false") {
setTimeout(callback, 1000);
$("#comment").text("comment " + num);
num++;
return false;
}
});
});

function callback() {
$("#valid").val("true");
$("#form").submit();
}
</script>
</head>
<body>
<form id="form">
<div id="comment"></div>
<input type="hidden" id="valid" name="valid" value="false">
<input type="text" name="loc">
<input type="submit" value="Submit">
</form>
</body>
</html>

还值得指出的是,您不应该依赖此验证,而应该在服务器上重复它,因为没有办法阻止潜在的恶意攻击者欺骗看似有效的表单提交。

关于jquery *在*第三方ajax验证之后提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1553433/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com