/baiduQ

baiduQ

Primary LanguageJavaScript

生成表单类creatSelect

默认配置参数:
	this.cfg = {
	type: 'selectOne',
	creatSelectNum: 'Q1',
	creatSelectTitle: '文本',
	creatSelectContent: 'selectMany', /selectMany/textarea
	target: 'body',
	};
方法:
init(cfg)
  • 根据传入参数生成对应的dom结构,插入页面
  • .creatSelect_div_content部分:绑定事件-删除某一项输入栏
  • .creatSelect_div_addNewSelect部分绑定事件-增加一项输入栏
  • .creatSelect_div_control部分绑定事件-上移,下移,复用,删除
  • JS根据传入参数,页面中已存在的.creatSelect结构生成符合要求的DOM结构,插入到页面中
selectControlBindEvents($selectControl,self,CFG)
  • 为传入的DON $selectControl绑定事件
  • 复用时,把当前点击的那个.creatSelect(记为B)clone一份
  • B插入完成之后,刷新一次Qnum,如Q1,Q2,调用refreshAllQnum()
  • 绑定上移点击事件
    • 找出当前点击的这个.creatSelect在页面中所有.creatSelect中是第几个
    • 当前这个.creatSelect(记为B)插入到上一个.creatSelect(记为A)的前面
    • 为了将A上面绑定的事件保留,B需要先clone(true)后remove()
    • 重新编排Qnum,如Q1,Q2,调用refreshAllQnum()
  • 下移,删除,等操作如上,不再赘述
checkAllUpDown()
  • 根据页面中存在的表单个数和表单位置,判断表单部分的上移,下移按钮是否应该显示
renderQnum()
  • 根据页面中存在的表单个数和表单位置,生成每一个表单项标题的前缀,如Q1,Q2
refreshAllQnum()
  • 在执行上移/下移/删除操作后,执行该函数,更新每个.creatSelect的Qnum,如Q1,Q2