做CRUD时,点击一条数据进行修改。如果数据中有下拉框,怎样初始化是一个问题。以下是我的办法:
<select id="yearId" name="studentInfoVo.yearId" class="easyui-validatebox" 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 class="easyui-validatebox" validType="requiredSelect['-1','请选择年级']" disabled="disabled" id="gradeId" name="studentInfoVo.gradeId" onchange="selectClass(this)">
<option value="-1" >--请选择年级--</option>
</select>
<select id="classId" class="easyui-validatebox" 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>