`
zccst
  • 浏览: 3322357 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

form表单深入理解

 
阅读更多
作者:zccst
form表单

一、表单基础
作用:用来向服务器端提交数据。将form表单里的所有内容一起提交到服务器端。


特点:
1,一个form表单应该只有一个submit的按钮。

2,上传多个文件如果分开上传应该使用多个表单;如果一起上传,则使用一个表单。

3,如果一个页面中有多个表单,则提交时,不同表单内的空间可以同名。


二、动态创建表单
<div id="upForms">
		<form id="fileitemdiv1" action="<?php echo $this->createUrl('repairUpload'); ?>" method="post" enctype="multipart/form-data" target="upload_target">
			<input type="file" name="repair_attached_file1" />
			&nbsp;<input type="submit" name="submitBtn" value='立即上传' />
			<span id="upload_repairinfo_success1" style="color:red;"></span>
			<input type="hidden" name="selectedIndex" value="1" />
			<!-- 记录上传成功后的id -->
			<input type="hidden" name="upload_save_to_db_id" id="upload_save_to_db_id1" value="0" />
		</form>
		<iframe id="upload_target" name="upload_target" src="#" style="width:0;height:0;border:0px solid #fff;"></iframe>
		</div>
		<div>
			<input type="button" value="增加附件" onclick="addfile();">
			<input type="hidden" id="up_success_file_ids" />
		</div>


var filecount=1;
// 新增一个上传文件控件
function addfile(){
	var filediv = document.getElementById("upForms");
	var fileitemdiv = document.createElement("form");
	filecount++;
	var content = "<input type=file name=repair_attached_file"+
	filecount + ">&nbsp;&nbsp;<input type=submit name=submitBtn value='立即上传' />&nbsp;&nbsp;<a href='javascript:removefile("+
	filecount + ");'>删除</a>&nbsp;&nbsp;<span id=upload_repairinfo_success"+
	filecount + " style='color:red;'></span><input type=hidden value="+
	filecount + " name=selectedIndex /> <input type=hidden name=upload_save_to_db_id id=upload_save_to_db_id"+
	filecount + " value=0 />";

	fileitemdiv.id       = "fileitemdiv"+filecount;
	fileitemdiv.method   = "post";
	fileitemdiv.enctype  = "multipart/form-data";
	fileitemdiv.target   = "upload_target";
	fileitemdiv.action   = "<?php echo $this->createUrl('repairUpload'); ?>";
	fileitemdiv.innerHTML = content;
	filediv.appendChild(fileitemdiv);
}

//删除指定上传文件控件
function removefile(fileIndex){
	var filediv = document.getElementById("upForms");
	var fileitemdiv = document.getElementById("fileitemdiv"+fileIndex);
	filediv.removeChild(fileitemdiv);
}



三、避免表单重复提交
方案1,限制次数。
a. 使用onsubmit
使用onsubmit="return startUpload()"
b. 设置按钮只按一次就失效
<input type="button" value="只提交一次" onclick="this.disabled=true;this.form.submit()" />


方案2,最后一次生效,把之前的覆盖。
上面采用就是。

参考:
http://developer.51cto.com/art/200912/166148.htm
http://hi.baidu.com/squiant/blog/item/21068ec59301afae8226ac09.html

其他:
a,通过js【上面已描述】
b,通过session
c,通过cookie
d,通过跳转

四、onsubmit的使用
<form .... onsubmit="return validate()"></form>
onsubmit事件就是针对<input type="submit" />的。

在js中,在validate函数进行验证等。默认返回true,即提交表单。指定返回false时,表单不提交。
分享到:
评论

相关推荐

    form表单拖拽功能

    本文将深入探讨"form表单拖拽功能"这一主题,结合提供的文件"FormbuildV1.0",详细解释其背后的技术实现和相关知识点。 首先,我们需要理解HTML表单的基础结构。一个基本的HTML表单通常由`&lt;form&gt;`标签定义,里面...

    C# post方式提交Form表单

    本篇文章将深入探讨如何在C#中通过POST方式提交Form表单,包括其原理、步骤和实际代码示例。 一、POST提交表单的基本原理 POST是HTTP协议中的一个方法,用于向服务器发送数据,特别是当数据量较大或者包含敏感信息...

    40多款漂亮的form表单设计

    本文将深入探讨“40多款漂亮的form表单设计”,这些设计不仅美观,而且注重用户体验,旨在提高用户参与度和数据提交效率。 表单设计的首要原则是清晰易懂。设计师必须确保表单布局直观,让用户一眼就能识别出每个...

    php curl模仿form表单提交图片或文件

    在本文中,我们将深入探讨如何使用PHP的cURL库来模仿form表单提交,特别是提交图片或文件。我们将结合ThinkPHP5(简称TP5)框架来展示一个实际的例子。 首先,了解cURL。cURL是一个客户端URL传输库,它支持多种协议...

    美观又功能齐全的HTML form表单

    本主题将深入探讨如何创建美观且功能齐全的HTML `form` 表单,确保用户体验良好,同时满足网站或应用程序的需求。 首先,我们需要了解HTML中的基本`form`元素。`&lt;form&gt;`标签定义了一个表单区域,它包含了一系列的...

    EXT异步提交FORM表单

    ### EXT异步提交FORM表单...通过以上内容,我们不仅了解了EXT异步提交FORM表单的具体实现细节,还深入探讨了其与Struts2/Spring2.5框架的集成方法。这将有助于开发者更好地利用这些技术栈构建高效稳定的Web应用程序。

    微信小程序例子——使用form表单获取输入框数据

    在这个例子中,我们将深入探讨如何在微信小程序中使用`form`表单来获取用户输入的数据。 一、`&lt;form&gt;`组件介绍 在微信小程序中,`&lt;form&gt;`组件用于创建一个表单容器,它允许用户输入数据并通过提交操作将数据传递到...

    防止Layui form表单重复提交的实现方法

    这不仅涉及到对Layui框架的熟悉,还需要对前端JavaScript和AJAX有深入的理解。通过上述方法,可以有效地防止用户在表单提交过程中产生的重复提交行为,提升用户的操作体验,确保数据提交的正确性和服务器的稳定性。

    简单的form表单模板

    本文将深入探讨“简单的form表单模板”及其相关知识点。 首先,我们需要了解HTML中的`&lt;form&gt;`标签。它是创建表单的基础,用于定义用户输入数据的区域。例如: ```html &lt;form action="submit.php" method="post"&gt; ...

    Python关于 Django 的web- Form 表单验证

    在Python的Web开发框架Django中,Form表单验证是一个至关重要的部分,它允许开发者创建用户界面并确保从用户那里接收到的数据是...阅读"3.4 Django Form.pdf"这样的资料,将进一步深入理解Django表单验证的细节和实践。

    jquery异步提交form表单

    本文将深入探讨“jQuery异步提交form表单”这一主题,结合给出的标签“源码”和“工具”,我们将分析相关源码,并提供实际应用中的指导。 在传统的HTML表单提交过程中,页面会跳转到服务器返回的结果页面,这在用户...

    ajaxForm异步提交表单(含图片)

    本文将深入探讨如何使用ajaxForm进行异步表单提交。 首先,让我们了解什么是Ajax。AJAX(Asynchronous JavaScript and XML)是一种创建动态网页的技术,允许在不重新加载整个页面的情况下更新部分网页内容。Ajax...

    Form表单模拟美化插件.zip

    "Form表单模拟美化插件"正是为了解决这一问题而设计的,它通过JavaScript和CSS技术对基本表单元素进行深度美化,以提供更加美观、友好的用户体验。 这款插件特别关注了"select"下拉框的美化,因为在实际应用中,...

    SpringCloud Finchley Gateway 缓存请求Body和Form表单的实现

    然而,有些场景下,我们可能需要缓存请求的Body(如JSON数据)或Form表单数据,以便进行进一步的业务逻辑处理或优化性能。在Spring Cloud Finchley版本中,由于其基于WebFlux的响应式架构,我们需要特别注意如何正确...

    使用FormValidation进行表单验证

    在网页开发中,表单验证是一项至关重要的任务,它确保用户输入的数据符合预期格式和规则,从而保护数据安全,提供良好的用户体验。...通过深入理解和实践,你可以掌握这一工具,提升你的前端开发技能。

    基于jQuery和layui的form表单自定义js动态生成

    在前端开发中,动态生成表单是一个常见的需求,特别是在数据录入、编辑或验证场景下。...在实际项目中,你可能还需要考虑更复杂的需求,如表单重用、动态增删表单行等,这需要你对jQuery和layui有更深入的理解。

    原生js form表单美化插件表单元素input select下拉框

    本主题将深入探讨如何使用原生JavaScript对form表单进行美化,并对input输入框和select下拉框进行优化。 一、表单基础 1. 表单元素:HTML中的&lt;form&gt;标签定义了一个表单,其中可以包含各种表单控件,如(输入框)、...

    form表单中的onblur事件

    首先,让我们深入了解`onblur`事件的工作原理。当一个表单元素(如`&lt;input&gt;`、`&lt;textarea&gt;`、`&lt;select&gt;`等)获得焦点,用户可以开始输入或进行其他操作。一旦用户将焦点转移到表单外部或其他元素上,`onblur`事件就...

    formbuilder表单构建工具_在线表单设计器代码

    在本文中,我们将深入探讨formBuilder的核心特性、使用场景以及如何通过其在线表单设计器来编写和编辑代码。 **核心特性** 1. **可视化编辑**:formBuilder提供了一个直观的拖放界面,用户可以通过选择不同类型的...

Global site tag (gtag.js) - Google Analytics