js动态添加删除,后台取数据(示例代码)

  环境描述:就像你一般在论坛上发表文章,可能带附件,附件的数量是你手动添加删除的!!

  /************************************************************************

  *** 添加审批表单模板

  ************************************************************************/

  // 增长的索引

  var itemIndex = 1000;

  // 数量

  var counter = 0;

  // 模板

  var itemTemplate = '';

  itemTemplate += '<div id="item_#itemIndex#" style="width: 100%;">';

  itemTemplate += '   <span style="width: 80px">表单字段</span>';

  itemTemplate += '   <input type="text" name="flowFormFieldCfgElement(#itemIndex#).name" style="width: 205px;"/>';

  itemTemplate += '   值类型 <select name="flowFormFieldCfgElement(#itemIndex#).valueType">';

  itemTemplate += '       <option value="java.lang.String" selected>字符串</option>';

  itemTemplate += '       <option value="java.lang.Integer">数字(整数)</option>';

  itemTemplate += '       <option value="java.util.Date">日期(yyyy-MM-dd)</option>';

  itemTemplate += '   </select>';

  itemTemplate += '   <input type="button" class="btnDelItem" onclick="delItem(#itemIndex#)" value="删除">';

  itemTemplate += '</div>';

  // 添加

  function addItem() {

  var s = itemTemplate.replace(/#itemIndex#/g, itemIndex);

  $("#divFormFields").append(s);

  itemIndex ++;

  counter ++;

  }

  // 删除

  function delItem(index) {

  $("#item_" + index).remove();

  counter = counter - 1;

  }

  public class FlowFormConfigActionForm extends ActionForm {

  private int id;

  private String name;

  private String processName;

  private String formFillTemplatePath;

  private String formShowTemplatePath;

  private Map<String, FlowformFieldConfig> flowFormFieldCfgMap = new TreeMap<String, FlowformFieldConfig>();

  /** 表单复杂属性 */

  public FlowformFieldConfig getFlowFormFieldCfgElement(String key){

  if(!flowFormFieldCfgMap.containsKey(key)){

  flowFormFieldCfgMap.put(key, new FlowformFieldConfig());

  }

  return flowFormFieldCfgMap.get(key);

  }

  *U*****

  public class FlowformFieldConfig {

  private int id;

  private String name;

  private Class<?> valueType;

  主要要原理是:struts1.*在jsp显示的时候,会先从formbean里通过get***方法拿出属性的值!!

  flowFormFieldCfgElement(#itemIndex#).name 这是核心,如果flowFormFieldCfgElement(#itemIndex#)为空的话,就会出错,所以在/** 表单复杂属性 */

  public FlowformFieldConfig getFlowFormFieldCfgElement(String key){

  if(!flowFormFieldCfgMap.containsKey(key)){

  flowFormFieldCfgMap.put(key, new FlowformFieldConfig());

  }

  return flowFormFieldCfgMap.get(key);

  }

  做了判断!!

  如果还有不懂的人可以给我留言!!