gpt4 book ai didi

javascript - 基于jQuery中Ajax响应的表单提交

转载 作者:行者123 更新时间:2023-11-30 06:45:17 25 4
gpt4 key购买 nike

我正在使用jQuery并阻止提交表单,然后基于ajax响应将提交表单。我发现的问题是我经常不得不提交两次表格。第一次显示加载程序,但似乎没有调用ajax成功函数中的任何动作。如果我再次单击它,它将提交(如果它已通过验证)。在经历了这一过程之后,它似乎还是第一次起作用。因此,如果我再试一次,它将在第一次使用。那么也许是缓存问题?这是我拥有的JavaScript:

            $('#submit_zipcode_frm').submit(function(event){
event.preventDefault();
var self = this;
$(".loader img").show();
z = $('#zipcode');
if(z.val() != '' && z.val().length == 5) {
var value = z.val().replace(/^\s\s*/, '').replace(/\s\s*$/, '');
var intRegex = /^\d+$/;
if(!intRegex.test(value)) {
$(".loader img").hide();
error($(".zipcode_field"));
return false;
}
} else {
$(".loader img").hide();
error($(".zipcode_field"));
return false;
}

$.ajax({
url: "/ajax/save/zipcode",
type: 'GET',
async: false,
cache: false,
dataType: 'html',
data: {zipcode: $('.zipcode_field').val()},
success: function(data) {
if(data == 'false'){
$(".loader img").hide();
error($(".zipcode_field"));
return false;
}else{
self.submit();
getList();
}
}
});
});


这是标记:

                        <form id="submit_zipcode_frm" class="submit_zipcode" method="post" action="/go" target="_blank">
<div class="zipcode_container">
<span class="loader">
<img src="/assets/img/loader.gif" style="display: none;"/>
</span>
<input type="text" class="zip_input zipcode_field ghost" id="zipcode" name="zipcode" value="Enter your Zip"/>
<div class="start_btn">
<button type="submit">Submit</button>
</div>
<div class="clear"></div>
</div>
<div class="clear"></div>
</form>


任何建议或想法将不胜感激。谢谢!

编辑:

只是为了澄清这里的步骤:


用户单击提交按钮
JavaScript显示加载程序并验证输入值的长度和类型
如果通过,则使用ajax查找来真正验证其是否为有效的USPS邮政编码。
如果是,则提交表单并调用函数getList()。
如果不是,则抛出错误

最佳答案

可能考虑使用submithandler查看它在jQuery表单插件中的处理方式并从中借用。 http://malsup.com/jquery/form/

关于javascript - 基于jQuery中Ajax响应的表单提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7493582/

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