form表单深入理解
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" /> <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 + "> <input type=submit name=submitBtn value='立即上传' /> <a href='javascript:removefile("+filecount + ");'>删除</a> <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);}
<input type="button" value="只提交一次" onclick="this.disabled=true;this.form.submit()" />