javascript – jQuery:在提交表单之前执行一些操作
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – jQuery:在提交表单之前执行一些操作,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2526字,纯文字阅读大概需要4分钟。
内容图文
![javascript – jQuery:在提交表单之前执行一些操作](/upload/InfoBanner/zyjiaocheng/719/76518f7e7c054474b3efd8ebab8bfd4a.jpg)
我有一个页面,上面有一个表格.表单包含一个文本框和一个提交按钮.
提交表单时,通过单击按钮或按文本框中的Enter键,我想进行查找(在这种情况下,使用Bing Maps对邮政编码进行地理编码),然后像往常一样将表单提交到服务器.
我目前的方法是将提交事件的处理程序添加到一个唯一的表单,然后在我完成时调用submit(),但我无法使其工作,并且无法调试问题:
$(document).ready(function () {
$("form").submit(function (event) {
var postcode = $.trim($("#Postcode").val());
if (postcode.length === 0) {
return false;
}
var baseUrl = "http://dev.virtualearth.net/REST/v1/Locations/UK/";
var apiKey = "myKey";
var url = baseUrl + postcode + "?key=" + apiKey + "&jsonp=?";
$.getJSON(url, function (result) {
if (result.resourceSets[0].estimatedTotal > 0) {
var location = result.resourceSets[0].resources[0].point.coordinates;
$("#latitude").val(location[0]);
$("#longitude").val(location[1]);
$("form").submit();
}
});
});
});
解决方法:
event.preventDefault()是你的朋友.您基本上遇到了与here相同的问题.在实际的ajax请求完成之前提交表单.您需要暂停表单提交,然后执行ajax,然后执行表单提交.如果你没有在那里设置一些停靠点,那么它将只是通过它,它唯一有时间做的就是提交表单.
$(document).ready(function () {
$("form").submit(function (event) {
// prevent default form submit
event.preventDefault();
var postcode = $.trim($("#Postcode").val());
if (postcode.length === 0) {
return false;
}
var baseUrl = "http://dev.virtualearth.net/REST/v1/Locations/UK/";
var apiKey = "myKey";
var url = baseUrl + postcode + "?key=" + apiKey + "&jsonp=?";
$.getJSON(url, function (result) {
if (result.resourceSets[0].estimatedTotal > 0) {
var location = result.resourceSets[0].resources[0].point.coordinates;
$("#latitude").val(location[0]);
$("#longitude").val(location[1]);
$("form").submit();
}
});
});
});
但是,当你将preventDefault放在那里时,你无法使用$(‘form’)继续表单提交.submit();了.您需要将其作为ajax请求发送,或者为preventDefault定义条件.
也许这样的东西:
$(document).ready(function () {
var submitForReal = false;
$("form").submit(function (event) {
var postcode = $.trim($("#Postcode").val());
if (postcode.length === 0) {
return false;
}
// prevent default form submit
if(!submitForReal){
event.preventDefault();
}else{
var baseUrl = "http://dev.virtualearth.net/REST/v1/Locations/UK/";
var apiKey = "myKey";
var url = baseUrl + postcode + "?key=" + apiKey + "&jsonp=?";
$.getJSON(url, function (result) {
if (result.resourceSets[0].estimatedTotal > 0) {
var location = result.resourceSets[0].resources[0].point.coordinates;
$("#latitude").val(location[0]);
$("#longitude").val(location[1]);
submitForReal = true;
$("form").submit();
}
});
}
});
});
内容总结
以上是互联网集市为您收集整理的javascript – jQuery:在提交表单之前执行一些操作全部内容,希望文章能够帮你解决javascript – jQuery:在提交表单之前执行一些操作所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。