日期:2014-05-17  浏览次数:20827 次

求解Ajax中$.getJSON为什么没有执行
在使用Ajax进行级联是遇到了一个问题,求各位帮帮忙,给小弟指点一下

HTML代码片段:

<td align="left" style="border:none;">课程名称:
   <select name="tempName" id="tempName">
                    <option value="">----请选择课程----</option>
                   
                    <c:forEach items="${courseInfos }" var="courseInfo">
                    <option value="${courseInfo.courseName }">${courseInfo.courseName }</option>
                    </c:forEach>
               </select>
</td>

<td align="left" height="30">
考试状态:
<select name="paperState" id="paperState">
                    <option value="" >----请选择试卷状态----</option>
               </select>
</td>


JS代码片段:(已经载入了jQuery库)

$(function(){

/*
* 下拉列表的级联
*/
// 1.获取 #tempName,给其添加 change 事件
$("#tempName").change(function(){
// alert("选择课程...");

// 2. 获取 #paperState ,使其只保留第一个子节点
$("#paperState option:not(:first)").remove();
// alert("获取 #paperState ,使其只保留第一个子节点");

// 3.获取 #tempName 的值,若该值为“”,则说明选择了“请选择”,则不需发送 Ajax 请求
// 若不为空,则准备发送 Ajax 请求
var tempName = $("#tempName").val();
// alert("#tempName 的值 = " + tempName);

if(tempName != ""){
//alert("不为空,准备发送 Ajax 请求..."); 
var url = "${pageContext.request.contextPath }/exam/LaunchExam_getPaperState.do";
var args = {"courseName": tempName, "time":new Date()};

// 发送请求
// alert("发送请求");
$.getJSON(url, args, function(data){
alert("data:" + data);
});
}
});
});
</script>


Action中的方法:

/**
 * 获取“试卷状态”方法:用于获取试卷的状态,“已发布已考”还是其他。
 * 此处是级联操作使用的方法。
 * 注意:级联完毕后,要以表单的形式显示所有符合条件的数据信息
 * 级联:课程名称--->考试状态。二级联动
 * @return
 */
public String getPaperState(){
System.out.println("准备获取“试卷“状态...");

String courseName = "";
// 获取 Ajax 请求中的参数
try {
response.setCharacterEncoding( "UTF-8" );

courseName = request.getParameter("courseName");
courseName =  new String(courseName.getBytes("ISO8859-1"),"utf-8");
} catch