如何用jstl的select標簽做二級聯動下拉列表框??


下拉列表框的多級聯動早就會了。但是用jstl的select標簽做下拉列表框的做二級聯動的時候還是遇到了些問題。主要問題在用Ajax查詢到的數據如何拼成下拉選項的時候。其實很簡單,但我還是折騰了好久。所以這里做下筆記,以免哪天忘了。

注意:我的前綴:prefix="form"

<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>

----------------------------------------------------------------------------

遇到的問題一:當JQuery中出現“<form:option”這段字符串的時候就會出問題。

先上兩張圖,說明<form:option>標簽是可以用作<form:select>的子標簽的。

-----------------------------------------------------------------------------

以上兩張圖說明<form:option>標簽是可以用作<form:select>的子標簽的。

但是,當我在JQuery中拼接<form:option>標簽的時候出現了錯誤。

復制代碼
               var baseInfoId = list[i].id;
                        var baseInfoName = list[i].name;
                        
                        var $option = $("<form:option value='" + baseInfoId + "' >" + baseInfoName + "</form:option>");
                        
                        $option.appendTo($attendance_emp);
復制代碼

運行出現的錯誤

-

意思是:option標簽只能用在合理的select標簽內。。。。這樣理解對嗎??反正我是這么理解的。。。。。

搞來搞去發現,,,在上面一開始的時候我就試過了<form:option>標簽明明是可以用在<form:select>標簽內的呀??為什么我在JQuery里面拼接用函數生成一個<form:option>選項的時候就錯呢???鼓搗了半天。。。最后覺得應該是“<form:option”這個字符串在JQuery代碼中導致出現的問題。。。。。然后就把這個字符串拆了。。。。如下:

復制代碼
                        var baseInfoId = list[i].id;
                        var baseInfoName = list[i].name;
                        
                        var $option = $("<form"+":" + "option value='" + baseInfoId + "' >" + baseInfoName + "</" + "form" + ":" + "option>");
                        
                        $option.appendTo($attendance_emp);
復制代碼

這下終於不報錯了。

但是,高興的太早。。。。。

拼接的下拉選項呢??????????

這里我又折騰了好久,感覺明明自己是對的但卻結果很讓人失望。。。。。。把自己其他的地方的代碼都懷疑了一遍。

最后確定了,問題就出在下面這行代碼上。可是我創造出來的var $option明明是對的呀????為什么就不能appendTo 呢???

$option.appendTo($attendance_emp);

唉,最后還是沒有解決這個問題。。。。。

問題總是要解決的。。沒辦法。<form:option>標簽改成<option>標簽。這下就可以添加了下面是正確的代碼。。。。

                        var baseInfoId = list[i].id;
                        var baseInfoName = list[i].name;
                        
                        var $option = $("<option value='" + baseInfoId + "' >" + baseInfoName + "</option>");
                        $option.appendTo($attendance_emp);

其實,一開始就想把<form:option>標簽改成<option>標簽的,但是認為<form:select>標簽下的<option>標簽怎么能沒有form前綴呢??。。然后就把想法擱置了。浪費了好多時間。

但是還是有收獲的,過程中學會了好多JQuery函數。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM