下拉列表框的多級聯動早就會了。但是用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函數。