网页表单提交方式大全 菜鸟总结

大家先来看看表单提交的几种方式:

  1、<!--通用提交按钮-->
  <input type="submit" value="提交">
  2、<!--自定义提交按钮-->
  <button type="Submit">提交</button>
  3、<!--图像按钮-->
  <input type="image" src = "btn.png">
说明:用户提交按钮或图像按钮时,就会提交表单。使用<input>或<button>都可以定义提交按钮,只要将其特性的值设置为“submit”即可,而图像按钮则是通过<input>的type特性值设置为”image”来定义的。因此,只要我们单击一下代码生成的按钮,就可以提交表单。

4、阻止表单提交
只要在表单中存在上面列出的任何一种按钮,那么相应表单控件拥有焦点的情况下,按回车键就可以提交表单。如果表单里没有提交按钮,按回车键不会提交表单。

  以这种方式提交表单时,浏览器会在将请求发送给服务器之前触发submit事件。这样,我们就有机会验证表单数据,并据以决定是否允许表单提交。阻止这个事件的默认行为就可以取消表单提交。例如,下面代码会阻止表单提交:

 1 var EventUtil = {
 2     addHandler: function (element, type, handler) {
 3         if (element.addEventListener) {
 4             element.addEventListener(type, handler, false);
 5         } else if (element.attachEvent) {
 6             element.attachEvent("on" + type, handler);
 7         } else {
 8             element["on" + type] = handler;
 9         }
10     },
11     getEvent: function (event) {
12         return event ? event : window.event;
13     },
14     preventDefault: function (event) {
15         if (event.preventDefault) {
16             event.preventDefault();
17         } else {
18             event.returnValue = false;
19         }
20     }
21
22 };
23
24 var form = document.getElementById("myForm");
25 EventUtil.addHandler(form, "submit", function () {
26     //取得事件对象
27     event = EventUtil.getEvent(event);
28     //阻止默认事件
29     EventUtil.preventDefault(event);
30 });

调用preventDefault()方法阻止了表单提交。一般来说,在表单数据无效而不能发送给服务器时,可以使用这一技术。

5、在JavaScript中,以编程方式调用submit()方法也可以提交表单。
     这种方式无需表单包含提交按钮,任何时候都可以正常提交表单。来看一个例子:

  var form = document.getElementById("myForm");
  //提交表单
  form.submit();  
     在以调用submit()方法的形式提交表单时,不会触发submit事件,因此要记得在调用此方法之前先验证表单数字据。

  提交表单时可能出现的最大问题,就是重复提交表单。在第一次提交表单后,如果长时间没有反映,用户可能会变得不耐烦。这时候,他们也许会反复单击提交按钮。结果往往很麻烦(因为服务器要处理重复请求),或者造成错误(如果是下了订单,那么可能会多定好几份)。
解决这一问题的办法有两个:
     在第一次提交表单后就禁用提交按钮;
     利用onsubmit事件处理程序取消后续的表单提交操作。

接下来将详细介绍通过form提交的几种方法

方法一:利用form的onsubmit()函数(经常使用),代码如下:

 1 1.<script type="text/javascript">
 2 2.    function validateForm(){
 3 3.    if(document.reply.title.value == ""){ //通过form名来获取form
 4 4.        alert("please input the title!");
 5 5.        document.reply.title.focus();
 6 6.        return false;
 7 7.    }
 8 8.    if(document.forms[0].cont.value == ""){ //通过forms数组获取form
 9 9.        alert("please input the content!");
10 10.        document.reply.cont.focus();
11 11.        return false;
12 12.    }
13 13.    return true;
14 14.  }
15 15.<form name="reply"  method="post" onsubmit="return validateForm( );">
16 16.        <input type="text" name="title"  size="80" /><br />
17 17.        <textarea name="cont" cols="80" rows="12"></textarea><br />
18 18.        <input type="submit" value="提交" >
19 19.</form>
20 20.注意:
21 21.1.onsubmit属性内容一定要有return关键字,否则函数会直接执行,不会返回
22 22.2.validateForm一定要返回一个boolean类型的返回值
23 23.3.提交按钮要写成submit类型的 

方法二:利用input类型为submit组件的onclick()函数

1.将上面form标签中的onsubmit="return validateForm()"属性,去掉。

2.为“提交”按钮添加onclick事件,如下:

<input type="submit" value="提交" onclick="return validateForm();">

方法三:利用button组件的onclick()函数,手动提交,代码如下:

 1 1.<script type="text/javascript">
 2 2.    function modifyItem() {
 3 3.        if (trim(document.getElementById("itemName").value) == "") {
 4 4.            alert("物料名称不能为空!");
 5 5.            document.getElementById("itemName").focus();
 6 6.            return;
 7 7.        }
 8 8.        with (document.getElementById("itemForm")) {
 9 9.            method = "post";
10 10.            action = "item.do?command=modify&pageNo=${itemForm.pageNo}";
11 11.            submit();
12 12.        }
13 13.    }
14 14.    //返回
15 15.    function goBack() {
16 16.        window.self.location = "item.do?command=list&pageNo=${itemForm.pageNo}";
17 17.    }
18 18.</script>
19 19.<form name="itemForm" id="itemForm">
20 20.      <input name="itemNo" type="text"   id="itemNo" value="${ item.itemNo }" >
21 21.      <input name="itemName" type="text"   id="itemName" value="${ item.itemName }" >
22 22.     <input name="btnModify"  type="button" id="btnModify" value=“修改" onclick="modifyItem()">
23 23.</form>
24 24.注意:
25 25.1.提交时,设置form的action和methods属性,然后利用form.submit()函数提交。

菜鸟小结:

1.对form中的组件验证时,前两个使用的是name属性,包括form自身的。

2.如果提交表单时没有反应,同时确定提交表单部分代码没有问题,请查看提交表单前面的js代码,有时前面js的错误会引发莫名其妙的问题。

时间: 2024-08-04 18:44:59

网页表单提交方式大全 菜鸟总结的相关文章

为网页表单提交绑定回车快捷键

最近做个视频弹幕,由于遇到需要按回车就能发送表单消息的需求,因此总结下,使用jquery如何捕获回车事件及绑定办法. 代码如下: $("#TM-form").on("keydown",function(e){ //#TM-form为要发送消息的表单id, var e = e||event; var kc = e.which ||e.keyCode; e.stopPropagation(); //阻止事件冒泡 if(kc == 13){ TMdata.fontSize

用Tchromium替代webbrowser提交网页表单有关问题

用Tchromium替代webbrowser提交网页表单有关问题 提交表单时,使用js脚本,然后用 chrm.browser.Frame['ff'].ExecuteJavaScript 提交就可以. 我测试对百度主页提交数据进行搜索, strTemp := 'document.forms[0].wd.value=http://www.myexception.cn/delphi/"新闻热点";'  chrm1.Browser.MainFrame.ExecuteJavaScript(str

VC提交网页表单(一共八篇)

VC提交网页表单-自动评论留言(1)http://blog.csdn.net/wangningyu/article/details/4526357VC提交网页表单-自动评论留言(2)http://blog.csdn.net/wangningyu/article/details/4526551 HTTP协议学习笔记http://blog.csdn.net/wangningyu/article/details/4541556HTTP Post Using Chttp://blog.csdn.net/

利用excel VBA进行自动化数据分析,数据汇总,网页表单自动提交等功能

在制造业公司的生产管理,经营管理,采购管理,财务管理等工作中,都有大量的数据处理的任务,通过繁复的excel手工运算获取结果.通过员工培训和自我提升,掌握和使用excel数组公式和VBA自动化,能为员工节省巨大的时间和精力,提高工作附加值.同时作为公司效率化和系统化改善的一部分,为公司效益带来显著提升.以下通过一些案例,展示利用excel公式和VBA进行自动化数据分析,数据汇总,网页表单自动提交在实际场景中的典型应用.相关的文件和代码可以在github下载. 自动化数据分析 以下是通过VBA自动

20个jQuery插件,帮你打造完美网页表单

网页表单主要是用来从用户那里收集一些必要的信息,是网页设计中不可或缺的一环.一个设计良好的表单能更有效的获取用户信息,也会给用户带来更好地 使用体 验.基于这一点,很多设计师开始使用jQuery来创建网页表单.而使用jQuery表单插件会让你的网页表单脱颖而出. 为 此,我们收集了一些不同类型的jQuery表单插件和读者分享.在下面这些jQuery表单插件中,有些能改变表单的外观并同时兼容各种浏览 器:有些用于表单验证并方便管理员和用户的操作:还有一些则是非常流行的日历表单和下拉列表表单.我们希

双飞翼页面布局与网页表单的制作

双飞翼布局 基本的页面布局 首先建立三个块级元素,全部设定高度,中间的块级元素按照显示屏幕的宽度百分百设定,左右两个块级元素设定相同的宽度. 其次将三个块级元素依次设定漂浮效果,通过设置外框边距(margin属性)使三个块级元素在同一行显示.使得网页被分为左中右三部分. 网页表单制作 常用到的标签(青岛教学网为例) form标签 表单的内容都被包含在这个标签里面,用于向后端传输数据.有三个属性,method:以何种方式提交,增,删,改,查四个方法.action:表单提交的地址.name??? t

【Javaweb】网页表单调试中后退的大忌

网页的调试,尤其是表单的调试,应该每一次修改保存之后,必须在网页刷新一次或者在地址栏重新输入要调试的地址,不要用后退的方式,以为网页也是跟着刷新的了.其实,这只是在缓存中你还有没有修改的网页而已.纵使你已经重启过服务器,保存过代码了. 网页表单调试的时候,后退之后不按刷新,仅仅就后退完事,尤其是你要对这一页的脚本进行更新的调试,根本就是不停载入缓冲中没有修改过代码的页面,你写的脚本根本就没有加载到你修改完的页面. 由于脚本没有样式变化,根本就没意识这个问题 多多按刷新就对了.甚至可以按Ctrl+

网页表单文档设计及技术实现

在很多业务流程应用中,业务审批单的样式.内容多变,然而系统对业务表单数据并不敏感,因此,不使用对应的关系型数据表,而采用NoSQL技术来优化设计.因为NoSQL无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式.按NoSQL的特性,可以灵活进行schema结构(列定义)的修改,理论上应该可以很好支持这些多样表单的持久化保存.基于上述原因,业务审批单采用网页表单文档设计. 网页表单设计 首先,我们看一看在HTML表单元素(对象)中使用自定义属性的示例: <input fieldid=&quo

中文乱码又一解决方法:将表单提交方式由get改为post

当把所有牵涉到的都改为utf-8时,依然有乱码.后来在网站上求助,滄海一夢 给出了这个解决方案:将表单提交方式由get改为post,果然成功.谢过! 1.filter/comments.jsp: <%@ page language ="java" import="java.util.*" pageEncoding="UTF-8" %> <% String path = request.getContextPath(); Stri