关于自由流功能开发过程中前端的一些问题汇总-创新互联

之前一直从事C/S的开发,关于B/S用到的一些技术是不熟悉的,现在在逐步学习中,希望通过及时总结加强理解和记忆。目前开发的系统使用的主要是JQuery、Stuts2、Spring。

创新互联专注于企业全网整合营销推广、网站重做改版、西秀网站定制设计、自适应品牌网站建设、HTML5商城网站建设、集团公司官网建设、外贸营销网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为西秀等各大城市提供网站开发制作服务。

关于自由流后端及Jbpm的实现我会在另一篇博文中介绍,这里只介绍我在前端使用html及JQuery中遇到的问题以及对我来说不常使用的知识点。

1.关于Map以及JsonObject

在后端使用Map数据结构将工作任务节点名称与审批人列出(排除了会签的情况),即以节点名称为key,审批人为value,如下:

for(ProcessTaskEntity task : processTaskList){
		map.put(task.getActivityName(), task.getCreateUserCode());
		}
		taskVo.setActivityUserMap(map);

activityUserMap这个属性是Map类型,传到前端后我希望遍历这个Map类型的数据,分别取到其key和value。Map类型的在前端其value={a=b,c=d,e=f},在前端使用foreach进行遍历的时候将其等同于一般字符串,第一位是{,第二位是a,以此类推。这并不符合我们使用Map类型的初衷。

所以我们使用了JsonObject类型声明activityUserMap,上面的代码不需要做任何修改,即可得到一个JsonObject的activityUserMap,在前端使用如下方法遍历:

	var activityUserMap = ${taskVo.activityUserMap};
$.each(activityUserMap, function(key, value) { 
var temp= "" + key + "";
$('select[name="activityNameChoose"]').append(temp);
});

这段代码,如果是纯Java的,是简单清晰的。但用Js来写,有好多曲折:

1.用JQuery获得的控件不能再用.options.add()等方法;

2.$('select[name="activityNameChoose"]')后不能加[0];

3.Temp的内容如果写在append里会报undefined is not a function,原因不明。

2.取select选中值的问题

经过试验后的正确取值方法是

 $("select[name='activityNameChoose']").val()

而不正确的取值方法

$("input[name='uidscb']:checked").val()
$("input[name='uidscb']:checked").value
$("select[name='activityNameChoose']").value;

另外,其他方法比如$("select[name='activityNameChoose']").options也无法获得select的所有options选项。

3.$("input[name='XXX']:not(:checked)"):取得select未选中值的方法

关于使用JQuery操作select的详细方法可以参看:jQuery select操作控制方法小结。另外关于JQuery的遍历请查看$.each遍历map、array。另外在解决上述问题的过程中还参考了JQuery的三种$的三种实现。

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


名称栏目:关于自由流功能开发过程中前端的一些问题汇总-创新互联
URL分享:http://scyanting.com/article/dodipj.html