首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >form实现表单提交的各种方法(表单提交源码)

form实现表单提交的各种方法(表单提交源码)

作者头像
全栈程序员站长
发布于 2022-08-01 06:05:39
发布于 2022-08-01 06:05:39
6.6K01
代码可运行
举报
运行总次数:1
代码可运行

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

表单提交方法

1、type=“submit”

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<form name=”form” method="post" action="#">
	<input type="submit" name="submit" value="提交">
</form>

2、type=“image”

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<form name=”form” method=”post” action=”# "> 
	<input type=”image” name=”submit” src=”btnSubmit.jpg”> 
</form>

3、使用链接来提交表单,javascript的DOM模型:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<form name=”form” method=”post” action=”#”> 
	<a href=”javascript:form.submit();>提交</a> 
</form>

这种方法实际上是调用了一个javascript函数,使用javacript函数来提交表单,方法就非常多非常灵活了,比如可以把它加入到任意一个标签的onclick事件中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<form name=”form” method=”post” action=”#”> 
	<div onclick=”javascript:form.submit();> 
		<span>提交</span> 
	</div> 
</form>

但是,如果一个表单里有需要有多个提交按钮怎么办呢? 比如一个表单里的提交按钮所指向的处理页面不同,这样由于表单在定义的时候就已经确定下表单数据的处理页面,所以单纯地在表单里放多个提交按钮是没有办法达到目的的。这就需要javascript。 首先定义一个函数:

代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<script language=javascript> function query(){ 
     form.action=”query.php”; form.submit();} function update(){ 
     form.action=”update.php”; form.submit();} </script>

通过javascript改变form的action属性值,这样就可以实现多提交按钮而且功能不同了,页面内代码如下:

代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<form name=”form” method=”post” action=”#”> 
	<input type=”button” name=”query” onclick=”query();” value=”查询”> 
	<input type=”button” name=”update” onclick=”update();” value=”更新”> 
</form>

上面一段代码,使用的是普通的按钮,而提交功能的实现方法是在它的onclick事件中调用javascript函数. 有了上面这几种提交表单的方法,我想差不多够应付复杂的表单了.

表单提交注意点

注意:每个input标签都要有name属性,form要有action和method。 当然,这里也可以使用button代替input作为提交的按钮: button的type属性有两个值:button和submit。当不写type属性时,其type的默认值是submit,点击的话也会直接提交数据

使用form的onsubmit()方法对表单数据进行 验证后 再提交

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<form id="form1" action="/test" method="post" onsubmit="return checkForm()">

<input type="submit" value="提交">
//或者
<button type="submit">提交</button>

<script type="text/javascript"> function checkForm(){ 
     var user= document.getElementById('user').value; var psw= document.getElementById('psd').value; if (...) { 
     //如果验证不通过 return false; } else { 
     //验证通过 return true; } } </script>

这里给form元素加上了onsubmit()方法,它会在“提交”按钮点击的时候被触发,该方法一定要有return返回值,如果值为false则不进行提交,如果为true则提交。

给input type=’button’添加onclick事件,验证通过则调用submit()方法提交

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<form id="form1" action="/test" method="post">

<input type="button" value="提交" onclick="checkForm();">
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function checkForm(){ 
     
   var user= document.getElementById('user').value;
   var psw= document.getElementById('psd').value;  

   if(...){ 
     
       //验证不通过 
     return false;  
   }  
   document.getElementById("form1").submit();  
} 

使用ajax对数据进行 验证后 再提交

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<form id="form1" action="/test" method="post">

<input type="submit" value="提交" onclick="login()">
//或者
<button type="button" onclick="login()">提交</button>

<script type="text/javascript"> function login() { 
     $.ajax({ 
     type: "POST", dataType: "json", url: "/users/login" , data: $('#form1').serialize(), //提交的数据 success: function (result) { 
     console.log(result); //打印服务端返回的数据(调试用) if (result.resultCode == 200) { 
     alert("提交成功"); } ; }, error : function() { 
     alert("提交失败"); } }); } </script>

注意: 如果使用button,要先进行数据验证的话,就必须要将type的值设置为”button”,即表示它是一个按钮

这里提交的数据’data’,使用了serialize()方法将提交的表单值序列化(即a=1&b=2格式),当然你也可以写成:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{ 
   
    "username":username,
    "password":password
}

表单的 input、select 默认的样式是不同的,所以就造成了width设置的一样,但就是对不齐,可以设置box-sizing:border-box;来解决不一致问题

补充

表单具有默认的提交行为,默认是同步的,同步表单提交,浏览器会锁死(转圈儿)等待服务端的响应结果。 表单的同步提交之后,无论服务端响应的是什么,都会直接把响应的结果覆盖掉当前页面。

后来有人想到了一种办法,来解决这个问题,那边是服务端重定向(服务端重定向针对异步请求无效)

消除自动填充:通过添加readonly&onfocus =“this.removeAttribute('readonly'); 解决了这个问题。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<input type="password" name="Password" autocomplete="off" readonly onfocus="this.removeAttribute('readonly');" >

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年4月1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
javascript实现表单提交加密「建议收藏」
但有时候我们会出于安全角度考虑,给用户输入的密码进行加密,方法一就没办法解决这个问题,这时候我们同常会选择另一种方法,使用javaScript来进行表单提交,代码入下:
全栈程序员站长
2022/11/08
1.7K0
From表单提交的几种方式 原
<body> <form action="https://my.oschina.net/u/3285916" method="get" name="formOne" id="formId"> name:<input type="text" name="name"> pwd:<input type="password" name="pwd"><br/> <input type="button" value="1提交" onclick="document.form
醉生萌死
2018/11/05
8650
你还在手动拼接ajax数据吗?还不会通过ajax实现文件上传?
通过Formdata你就不用手动拼接表单元素的值了如name:sdd&pwd:dsf... 或许你会疑惑我为什么要手动拼接表单值,直接提交不就行了吗?有些时候我们会通过ajax提交表单,通过ajax提交表单时我们不得不手动拼接表单值,数量少还好数量多很容易出错,写着也烦,此处笔者深有体会啊, 不仅如此Formdata支持文件上传,这就意味着你可以通过ajax实现异步文件这在web开发中太有用了,此博客后台上传文件就是通过Formdata
切图仔
2022/09/08
6800
form表单提交的几种方式
完成后启动项目 并访问http://localhost:8080/query.html 输入用户名和密码
全栈程序员站长
2022/07/21
7.5K0
form表单提交的几种方式
form表单添加验证码并当验证通过后再提交表单
意思就是,form表单中添加一个验证码验证,然后当点击提交时先核验验证码是否正确,如果正确再提交数据,否则不提交。
岳泽以
2023/04/27
1.9K0
form表单重复提交,type=“button”和type=“submit”区别
公司测试提了一个项目后台在IE浏览器下(360,firefox就没问题)出现数据重复的问题,调试了好久终于发现问题所在,也不知道是谁写的代码,醉醉的。。。。
大道七哥
2019/09/10
1.8K0
javascript当中表单提交(空格提交的问题)
4.表单提交(空格提交的问题) 例 4.1(form.submitIEFF.html) <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <script language=javascript> function check() { var form = document.getElementById("regForm"); if (form.user.value == "") { alert("用户名不能为空!"); } else { form.submit(); } } </script> <form method=post id="regForm" action="jsp1.jsp"> 用户<input type="text" name="user"/><br> <INPUT TYPE="button" onclick="check();" id="regBut" value="提交"/> </form> 以上例子很好,但有个问题,当光标放在文本框里时,即使空格,回车也会提交。不信你试试,浏览器(IE和火狐)都这样。下面给出解决办法。 例 4.1_a <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <script language=javascript> function check() { var form = document.getElementById("regForm"); if (form.user.value == "") { alert("用户名不能为空!"); } else { form.submit(); } } </script> <form method=post id="regForm" action="jsp1.jsp"> 用户<input type="text" name="user" onkeydown="if(event.keyCode==13) return false;"/><br> <INPUT TYPE="button" onclick="check();" id="regBut" value="提交"/> </form> 或者用下面的例子,里面用了onSubmit,只要提交,它就会被执行。
马克java社区
2019/10/17
1.6K0
javascript当中表单提交(空格提交的问题)
JavaScript 函数劫持攻击原理
一个简单的示例如下,主要逻辑就是,用变量 _alert保存原函数 alert,然后重写 alert 函数,在重写的函数最后调用原函数。这样得到的一个效果就是调用 alert 的时候,可以往 alert 中加入其它操作。比如如下代码中进行一个赋值。
信安之路
2021/04/14
1.6K0
使用ajax方法实现form表单的提交
作者:13 GitHub:https://github.com/ZHENFENG13 版权声明:本文为原创文章,未经允许不得转载。 写在前面的话 在使用form表单的时候,一旦点击提交触发submit事件,一般会使得页面跳转,页面间的跳转等行为的控制权往往在后端,后端会控制页面的跳转及数据传递,但是在某些时候不希望页面跳转,或者说想要将控制权放在前端,通过js来操作页面的跳转或者数据变化。 一般这种异步的操作,我们都会想到ajax方式,因此在实现了功能后就整理了这篇文章,通过ajax方法实现for
程序员十三
2018/03/15
3.7K0
JavaScript---网络编程(12)--DHTML技术演示(5)-form表单验证技术(正则)
这里不进行很复杂的后台验证以及JavaScript的正则表达式,只是简单的介绍下这个技术,简单的后台接收与跳转,大概了解怎么验证的就可以。具体的技术,我后面还会继续写博客的。本人也还在学习中。
谙忆
2021/01/21
1.2K0
JavaScript---网络编程(12)--DHTML技术演示(5)-form表单验证技术(正则)
表单脚本
刚开始人们使用JavaScript,最主要的目的之一就是表单的验证,分担服务器处理表单的责任。虽然现流行的大部分提交方式是通过ajax,但了解表单,对于ajax方式也是有重大帮助的!所以,大家不要看轻表单。
奋飛
2019/08/15
5.6K0
浅谈ASP.NET的Postback
说道ASP.NET的Postback,就得说Web Page的生命周期,但是Web Page的生命周期却不是三言两语就能够说得清楚的,所以在这里单纯站的编程的角度,撇开Web Page 的生命周期浅谈Postback。 我们知道,无论是ASP.NET1.x,2.0,甚至是以后的版本,ASP.NET最终Render到Client端通过浏览器浏览的都是一样:一个单纯的HTML。Client通过Submit Form的方式将填入Form的数据提交给Server进行处理。我们现在来看看ASP.NET整个Postba
蒋金楠
2018/01/16
1.2K0
浅谈ASP.NET的Postback
Jquery 实现表单提交按钮变灰,防止多次点击提交重复数据
表单提交时候我们应该控制提交按钮,不能点击多次进行数据的重复提交。要不然就会有冗余的重复的数据在系统中,造成系统出现数据垃圾。jQuery很简单的就可以实现对表单提交按钮控制,下面就是相关的例子和代码。
全栈程序员站长
2022/06/29
4.7K0
关于表单重复提交问题
问题引入:当我们在做一个页面数据提交的时候,当我们连续点击提交按钮,因为快速连续点击,因为速度过快,页面还来不及反应,导致页面从复提交。。
小小许
2018/09/20
2K0
js与form交互方式总结
前言:刚开始接触web开发的时候,往往采用form表单直接提交的方式,但可能存在兼容问题,如:
csxiaoyao
2019/02/15
3.1K0
事件绑定(onsubmit)表单提交
说明: 上述通过表单提交的方式为GET提交,在后续的内容中我们会详细讲解,GET与POST之间的区别。
GeekLiHua
2025/01/21
1770
事件绑定(onsubmit)表单提交
【博客同步】js与form交互方式总结
前言:刚开始接触web开发的时候,往往采用form表单直接提交的方式,但可能存在兼容问题,如:
CS逍遥剑仙
2025/03/09
3210
JavaWeb——JavaScript精讲之事件监听机制与表单校验案例实战
1、事件监听机制概述 事件监听机制,指的是某些组件被执行了某种操作后,触发某些代码的执行。 事件:某些操作,如:单击、双击操作,键盘按下了,鼠标移动了。 事件源:组件,如按钮、文本输入框; 监听器:代码。 注册监听:将事件、事件源、监听器结合在一起,当事件源上发生了某个事件,则触发执行某个监听代码。 常见的事件: 1)点击事件:1、onclick:单击事件                       2、ondbclick:双击事件 2)焦点事件:1、obblur:失去焦点,一般用于表单校验        
Winter_world
2020/09/25
9470
JavaWeb——JavaScript精讲之事件监听机制与表单校验案例实战
JavaWeb防止表单重复提交的几种方式
(4)、ajax提交加锁 采用ajax方式提交表单时,设置一个布尔变量(true/false),当然其他类型变量也可以。初始时为true可以提交,在前端向服务器发出请求后,服务端响应结果没有回来之前将该值置为false,正常响应时再置为true。
全栈程序员站长
2022/08/04
2.7K0
防止Web表单重复提交的方法总结
在Web开发中,对于处理表单重复提交是经常要面对的事情。那么,存在哪些场景会导致表单重复提交呢?表单重复提交会带来什么问题?有哪些方法可以避免表单重复提交?
编程随笔
2019/09/11
5K0
防止Web表单重复提交的方法总结
推荐阅读
相关推荐
javascript实现表单提交加密「建议收藏」
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验