我有两个select选择框,一个文本框
目前第一个已经加载了项目分类
希望通过选择第一个select,无刷新加载第二个select
再通过选择第二个select,无刷新给文本框加载查询到的名称网上方法尝试过一二,但都有些不明的问题存在。
希望有高手指教一个具体点的思路或者实现方法。谢谢指教
就和发帖下面 选择论坛的功能中两个select一样
目前第一个已经加载了项目分类
希望通过选择第一个select,无刷新加载第二个select
再通过选择第二个select,无刷新给文本框加载查询到的名称网上方法尝试过一二,但都有些不明的问题存在。
希望有高手指教一个具体点的思路或者实现方法。谢谢指教
就和发帖下面 选择论坛的功能中两个select一样
<script language="javascript" type="text/javascript">
var objectId="";
function getArea(id,objid){
objectId=objid;
var url="/admin/jdyd/group_add.php";
var params="vegsortid="+id;
get(url,params,processData);
}
function processData(xhr){
//$$(objectId).innerHTML=xhr.responseText;
//先获取所有的select
var sel=document.getElementsByTagName("select");
//添加option
var op=document.createElement("option");
var text=document.createTextNode("objectId");
//追加到option中
op.appendChild(text);
sel.appendChild(op);
//document.getElementById("div1").appendChild(sel);
}
</script>
ajaxUtil.jsfunction get(url1,params,methodName){
/*
ajax使用的基本步骤: 1、初始化ajax引擎
2、封装url(设定要请求的路径)
3、打开ajax引擎(同步方式、异步的方式;本次传输使用get还是post)
4、将要请求的信息通过引擎发送到服务器进行处理
5、监听服务器返回给ajax引擎的处理状态
6、判断是否交互完毕,如果交互完毕则取出返回的数
*/
//初始化ajax引擎
var xhr = new XMLHttpRequest();//这种方式只针对ie浏览器,并且ie6以下还有问题。
var url=url1+"?"+params+"&r="+Math.random(); //alert(url);
//打开引擎
xhr.open("get",url,true); //readyState=1
//发送请求
xhr.send(null); //readyState=2
//监听readyState值的改变,每次改变都会执行下面额函数
xhr.onreadystatechange=function (){
//如果等于4,表明交互完毕 ,我们可以取出服务器返回的内容
if(xhr.readyState==4){
//动态调用方法,为什么说是动态呢?方法的名称是个变量methodName
methodName(xhr);
}
}}//$$()方法用于方便取出 id="id" 的对象
function $$(id){
return document.getElementById(id);
}html中给select添加onchange事件 onchange="getArea(this.value,'sltveg')"
但是仅在页面向ajax传值这一步 js就报错了
TypeError: sel.appendChild is not a function
[在此错误处中断] sel.appendChild(op);另外这段ajax.js中注释说//初始化ajax引擎
var xhr = new XMLHttpRequest();//这种方式只针对ie浏览器,并且ie6以下还有问题。
我担心有兼容性的问题,所以另求方法
这是取得页面所有 select 下拉框。明显有问题,你应该根据id来取要取得兼容的xhr 对象,应该想下面这样:
if (window.XMLHttpRequest)
{ // code for IE7+, Firefox, Chrome, Opera, Safari
var xhr=new XMLHttpRequest();
}
else
{ // code for IE6, IE5
var xhr=new ActiveXObject("Microsoft.XMLHTTP");
}
如果有实力 就是js