您好,登錄后才能下訂單哦!
之前一直從事C/S的開發,關于B/S用到的一些技術是不熟悉的,現在在逐步學習中,希望通過及時總結加強理解和記憶。目前開發的系統使用的主要是JQuery、Stuts2、Spring。
關于自由流后端及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= "<option value='" + key + "'>" + key + "</option>"; $('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的三種$的三種實現。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。