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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 算法学习–分酒问题(BFS)[通俗易懂]

    算法学习–分酒问题(BFS)[通俗易懂]有4个红酒瓶子,它们的容量分别是:9升,7升,4升,2升开始的状态是[9,0,0,0],也就是说:第一个瓶子满着,其它的都空着。允许把酒从一个瓶子倒入另一个瓶子,但只能把一个瓶子倒满或把一个瓶子倒空,不能有中间状态。这样的一次倒酒动作称为1次操作。假设瓶子的容量和初始状态不变,对于给定的目标状态,至少需要多少次操作才能实现?本题就是要求你编程实现最小操作次数的计算。输入:最终状…

    2022年10月19日
    1
  • 金税盘组件接口调用方法

    金税盘组件接口调用方法TaxCardX.dll组件接口 开卡 GoldTax:=CreateOleObject(‘TaxCardX.GoldTax’);GoldTax.CertPassWord:=’证书口令’;GoldTax.OpenCard; 发票查询 GoldTax.BatchUpload(‘查询报文’);1.查询体<?xmlversion=”1.0″encoding=”GBK”?><FPFP><DATA>

    2022年4月30日
    116
  • android常用布局详解「建议收藏」

    android常用布局详解「建议收藏」view和布局在一个Android应用程序中,用户界面通过View和ViewGroup对象构建。Android中有很多种View和ViewGroup,他们都继承自View类。View对象是Android平台上表示用户界面的基本单元。View的布局显示方式直接影响用户界面,View的布局方式是指一组View元素如何布局,准确的说是一个ViewGroup中包含的一些View怎么样布局。ViewGr…

    2022年6月2日
    33
  • curl返回常见错误码

    curl返回常见错误码http://www.cnblogs.com/wainiwann/p/3492939.htmlCURLE_OK(0)所有罚款。继续像往常一样。CURLE_UNSUPPORTED_PROTOCOL(1)你的URL传递给libcurl的使用协议,这libcurl的不支持。支持可能是你没有使用一个编译时的选项,它可以是一个拼写错的协议字符串,或者只是一个协议的libcu

    2022年7月14日
    36
  • comparable java_java rectangle

    comparable java_java rectangle在JAVA中使用eXtremeDBautoid,主要有以下几个问题:定义插入数据已经获取记录,如何获得autoid知道autoid,如何获取记录定义autoid在类的定义前加入注释:@Persistent(autoid=true)注意,eXtremeDB中的autoid并不需要单独的定义出一列表示,只需要在类级别定义即可。插入数据正常的使用insert方法插入即可,无需关注autoid。如果需要…

    2022年10月14日
    2
  • stm32H747_mpeg4是什么格式和mp4

    stm32H747_mpeg4是什么格式和mp41.H.264与MPEG的关联 在视频编解码技术定义方面有两大标准机构。一个是国际电信联盟(ITU)致力于电信应用,已经开发了用于低比特率视频电话的H.26x标准,其中包括H.261、H.262、H.263与H.264;另一个是国际标准化组织(ISO)主要针对消费类应用,已经针对运动图像压缩定义了MPEG标准。MPEG标准包括MPEG1、MPEG2与MPEG4。 以制订国际通讯标准为主的国际电信联盟ITU-T,在完成H.263(针对视频会议之用的串流视频标准)后,与IS.

    2022年9月19日
    2

发表回复

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

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