js – form表单提交不刷新

大家已经发现了,当我们点击submit提交form表单的时候,他会刷新一次,如果不想它刷新的话有下面两种方法:利用iframe我们可以利用一个隐藏的iframe来实现,主要是我们把提交目标放到一个隐藏的iframe里,然后让iframe提交数据(ps:这个未实测,仅仅是网上提供的,我记录一下.以后遇到或者会试一下吧)<formaction=”…

大家好,又见面了,我是你们的朋友全栈君。

大家已经发现了, 当我们点击submit提交form表单的时候, 他会刷新一次, 如果不想它刷新的话有下面两种方法:

 

利用iframe

我们可以利用一个隐藏的iframe来实现, 主要是我们把提交目标放到一个隐藏的iframe里, 然后让iframe提交数据

(ps: 这个未实测, 仅仅是网上提供的, 我记录一下. 以后遇到或者会试一下吧)

 

<form action="" method="post" target="the_iframe">  
    <input; type="text" id="id_input_text" name="the_input_text" />  
    <input type="submit" id="id_submit" name="the_submit" value="提交" />  
</form>  
<iframe id="is_iframe" name="the_iframe" style="display:none;"></iframe>

利用onsubmit事件

我们还可以绑定onsubmit事件(用jq的话是submit()), 在submit按钮效果触发之前我们就把数据提交了, 然后我们return false(让submit这次的点击触发事件失效, 否则表单又会提交一次, 并且刷新页面)

 

我们可以这样:

 

====== 如果你用原生js的话

html代码:

<form id="err_form" onsubmit="return post_data()">
	<input type="text" name="contact" name="address" autofocus="autofocus" placeholder="您的联系方式?" />
	<input type="text" name="title" maxlength="10" placeholder="10字以内的提要 (可不填)" />
	<textarea name="errmessage" required="required" maxlength="150" rows="7" placeholder="请输入问题描述(必填,150字以内)"></textarea>
	<input type="submit" id="sub" value="提交" />
</form>

 

js代码:

function post_data(){
	// ajax数据提交代码
	// .....

	return false;	//重要!一定要写
}

 

/* 18-1-17更新 */

这里有一个小技巧, 刚刚发现的.

我们在绑定onsubmit的时候是把return false放进onsubmit后面的调用函数内的, 这样子如果你的函数出现了错误, 将不会继续执行到函数最后’return false’这里, 还是会出现刷新的现象; 

我们应该把return false写到绑定事件中. 为了安全起见, 我们可以不用去掉函数的return false.

<form id="err_form" onsubmit="post_data();return false;">

/* ======================= */

====== 如果你用jq

html 代码:

<form id="err_form">
	<input type="text" name="contact" name="address" autofocus="autofocus" placeholder="您的联系方式?" />
	<input type="text" name="title" maxlength="10" placeholder="10字以内的提要 (可不填)" />
	<textarea name="errmessage" required="required" maxlength="150" rows="7" placeholder="请输入问题描述(必填,150字以内)"></textarea>
	<input type="submit" id="sub" value="提交" />
</form>

js代码:

$(document).ready(function() {
	$('#err_form').submit(function() {	//这次我们这么绑定
		var contact = $("input[name='contact']").val();
		var title = $("input[name='title']").val();
		var errmessage = $("textarea[name='errmessage']").val();				
		var err_data = {
			contact: contact,
			title: title,
			errmessage: errmessage
		}
		$.ajax({
			// ajax提交代码....
		});
			return false;	//还是要return false, 跟上面一样的道理
	});
});

 

以上!

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/125952.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 语义分割(Semantic Segmentation)方法「建议收藏」

    语义分割(Semantic Segmentation)方法「建议收藏」翻译来自:https://gist.github.com/khanhnamle1994/e2ff59ddca93c0205ac4e566d40b5e88语义分割方面的资源:https://github.com/mrgloom/awesome-semantic-segmentation1.什么是语义分割语义分割是当今计算机视觉领域的关键问题之一。从宏观上看,语义分割是一项高层次的任务,…

    2022年6月8日
    26
  • NOIP2017 酱油送命记

    NOIP2017 酱油送命记

    2022年3月12日
    45
  • 简单VBS教程「建议收藏」

    简单VBS教程「建议收藏」讲一下VBScript。主要面向菜鸟,懂得编程的朋友就不要浪费时间了,如果你想接触以下VBScript也可以。但既然有编程基础推荐直接去找一些参考书来读。会比较快。    什么是VBScript呢?VBScript的全称是:MicrosoftVisualBasicScriptEditon.(微软公司可视化BASIC脚本版)。正如其字面所透露的信息,VBS(VBScript的进一步简写)是基…

    2022年6月12日
    28
  • 准备日志迁移

    准备日志迁移

    2021年7月28日
    94
  • 【ElasticSearch面试】10道不得不会的ElasticSearch面试题[通俗易懂]

    【ElasticSearch面试】10道不得不会的ElasticSearch面试题[通俗易懂]以下是ElasticSearch面试题,相信大家都会有种及眼熟又陌生的感觉、看过可能在短暂的面试后又马上忘记了。JavaPub在这里整理这些容易忘记的重点知识及解答,建议收藏,经常温习查阅。评论区见关于es的面试,建议使用名词用官方语言描述会更准确。文章目录1.说说你们公司es的集群架构,索引数据大小,分片有多少,以及一些调优手段2.elasticsearch的倒排索引是什么3.elasticsearch是如何实现master选举的5.描述一下Elasticsearch索引

    2022年9月12日
    2
  • 《计算机组成原理》基础概念笔记整理

    《计算机组成原理》基础概念笔记整理《计算机组成原理》复习整理以下我将使用笔记的方式,将整本书重点整理一下,或许会有纰漏,望大家多多包涵。第一章计算机系统概论计算机的硬件:计算机中的电子电路和物理装置;计算机硬件的五大部分:运算器、控制器、存储器、输入设备和输出设备;计算机的软件:计算机运行所需的程序及相关的资料;软件系统:一台计算机中的全部程序的集合;计算机软件的分类(按功能划分):应用软件和系统软件;系统…

    2022年5月6日
    40

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号