今天发现的一个关于ajax url传值时,获取下拉列表选项的value时容易碰到的问题:
/**异步提交**/
var xmlHttp;
function selectListResult(){
var f=document.selectForm;
var branch=f.selectbranch.value;
var depart=f.selectdepart.value;
var name=f.UserName.value;
var time=f.Time.value;
var url=${basePath}"findScheduleByManyAction.action?BId="+branch+"&DId="+depart+"&UserName="+name+"&Time="+time;
alert(url);
xmlHttp=createXMLHttpRequest();
/*设置回调函数*/
xmlHttp.onreadystatechange=processRequest;
/**打开连接*/
xmlHttp.open("GET",url,true);
/**发送请求*/
xmlHttp.send(null);
}
这是jsp页面,动态获取值时,<option value="${branchid}"> 和<option value="branchid">在运行时都可以 取出值,但是Ajax获取value="${branchid}"的值是一个int数值,Ajax获取value="branchid"的值时却是 "branchid" 这个字符串,所以用到Ajax时需要用到EL表达式取值。
<td width="261" height="37">选择机构:
<select name="selectbranch">
<option value="0">=不限=</option>
<s:iterator value="branchList">
<option value="${branchid}"><s:property value="branchshortname"/></option>
</s:iterator>
</select>
</td>
<td width="261" height="37">选择机构:
<select name="selectbranch">
<option value="0">=不限=</option>
<s:iterator value="branchList">
<option value="branchid"><s:property value="branchshortname"/></option>
</s:iterator>
</select>
</td>