您好,登錄后才能下訂單哦!
之前一直從事C/S的開發(fā),關(guān)于B/S用到的一些技術(shù)是不熟悉的,現(xiàn)在在逐步學習中,希望通過及時總結(jié)加強理解和記憶。目前開發(fā)的系統(tǒng)使用的主要是JQuery、Stuts2、Spring。
關(guān)于自由流后端及Jbpm的實現(xiàn)我會在另一篇博文中介紹,這里只介紹我在前端使用html及JQuery中遇到的問題以及對我來說不常使用的知識點。
1.關(guān)于Map以及JsonObject
在后端使用Map數(shù)據(jù)結(jié)構(gòu)將工作任務(wù)節(jié)點名稱與審批人列出(排除了會簽的情況),即以節(jié)點名稱為key,審批人為value,如下:
for(ProcessTaskEntity task : processTaskList){ map.put(task.getActivityName(), task.getCreateUserCode()); } taskVo.setActivityUserMap(map);
activityUserMap這個屬性是Map類型,傳到前端后我希望遍歷這個Map類型的數(shù)據(jù),分別取到其key和value。Map類型的在前端其value={a=b,c=d,e=f},在前端使用foreach進行遍歷的時候?qū)⑵涞韧谝话阕址?,第一位?span >{,第二位是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的內(nèi)容如果寫在append里會報undefined is not a function,原因不明。
2.取select選中值的問題
經(jīng)過試驗后的正確取值方法是
$("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未選中值的方法
關(guān)于使用JQuery操作select的詳細方法可以參看:jQuery select操作控制方法小結(jié)。另外關(guān)于JQuery的遍歷請查看$.each遍歷map、array。另外在解決上述問題的過程中還參考了JQuery的三種$的三種實現(xiàn)。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。