故事背景

在使用 bootstrapvalidator的时候,backbone第一次渲染页面能够获通过$(formName).data("bootstrapValidator")获取到对象,进行相应的验证操作。但是在重新执行render函数进行渲染的时候,就会报错。于是纠结很久。

原因发现

在我自己找很久,其中尝试过程不表。终于在同事的帮助下发现一个问题,就是内层的form元素不存在,jQurey 找不到元素而报错。 当时就很诧异,因为我的 form元素是写在 模版里面的,怎么会没有了。如果都没有就算了,为什么第一次render有,后面的就没有了。 单步调试执行后,根据我那浅薄的前台知识,应该是第一次render执行时,view的el还在内存里面,没有和上层的form产生关联, 直接使用 html() 函数就加载到了页面上,而后面的render执行时,view的el已经在页面的dom tree 里面,就有 form不能嵌套的问题。具体的应该是在 html()函数中,当然这个没有单步调试,结论不一定准确。