Jquery修改时下拉框级联初始化问题
做CRUD时,点击一条数据进行修改。如果数据中有下拉框,怎样初始化是一个问题。以下是我的办法:
<select id="yearId" name="studentInfoVo.yearId" validType="requiredSelect['-1','请选择学年度']" onchange="selectGrade(this);">
??????? ??<option value="-1" >--请选择学年度--</option>
??????? ??<s:iterator value="classYearList">
?????????? ??<option value="<s:property value='yearId' />">
?????????? ???<s:property value='yearName' />
?????????? ??</option>
????????? ??</s:iterator>
</select>
<select validType="requiredSelect['-1','请选择年级']" disabled="disabled" id="gradeId" name="studentInfoVo.gradeId" onchange="selectClass(this)">
??????? ??<option value="-1" >--请选择年级--</option>
</select>
?????????
<select id="classId" validType="requiredSelect['-1','请选择班级']" id="classId" disabled="disabled" name="studentInfoVo.classId">
??????? ??<option value="-1">--请选择班级--</option>
</select>
?
解释:学年度和年级是级联的,年级和班级也是级联的。
初始化方法:
//学年度初始化
??<s:if test="studentInfoVo.yearId!=null || !studentInfoVo.yearId.isEmpty()">
???$("#yearId option[value='<s:property value='studentInfoVo.yearId' />']").attr("selected",true)
也可以直接用?$("#yearId ").val("<s:property value='studentInfoVo.yearId' />");
但是这在IE8和firefox下都是没有问题的,但是在IE6下,就会出现问题了。
则就用以下方法解决问题:
?setTimeout(function() {?
???????????$("#yearId ").val("<s:property value='studentInfoVo.yearId' />");
??????????})
??</s:if>
??//年级初始化
??<s:if test="studentInfoVo.gradeId!=null || !studentInfoVo.gradeId.isEmpty()">
???$("#gradeId").attr("disabled",false);
???<s:iterator value="classGradeList">
????$("<option>"+"<s:property value='gradeName' />"+"</option>").appendTo("#gradeId").val("<s:property value='gradeId' />");
??????? ?</s:iterator>
???//$("#gradeId option[value='<s:property value='studentInfoVo.gradeId' />']").attr("selected",true)
???setTimeout(function() {
???????? ??$("#gradeId").val("<s:property value='studentInfoVo.gradeId' />");
???????? ?})
??</s:if>
??//班级初始化
??<s:if test="studentInfoVo.classId!=null || !studentInfoVo.classId.isEmpty()">
???$("#classId").attr("disabled",false);
???<s:iterator value="schoolClassVoList">
????$("<option>"+"<s:property value='className' />"+"</option>").appendTo("#classId").val("<s:property value='classId' />");
??????? ?</s:iterator>
???//$("#classId option[value='<s:property value='studentInfoVo.classId' />']").attr("selected",true)
???setTimeout(function() {
???????? ??$("#classId").val("<s:property value='studentInfoVo.classId' />");
???????? ?})
??</s:if>