我想做一个简单的联动效果,我的html页面是这样的请选择导航:
<select id="menu" name="menu">
</select>
<span>请选择二级导航:
<select id="sort">
</select>
</span>
我是用ajax调用数据里的值,我如果直接在id为menu的select里添加onchange:sort(this.value)就可以实现,但是现在有两个问题
一个是,我加上一个form表单,这个事件就不能触发了,请大家指教;
第二个是,我不在html里写事件,在js里获取元素并触发,但是我得不得menu的值,js是这样的 window.onload=menu;
function menu(){
document.getElementById("sort").parentNode.style.display="none";
var parent=document.getElementById("menu");
//var next=parent.options[parent.selectedIndex].value;
parent.onchange=sort(1);
var ajax=new XMLHttpRequest;
ajax.onreadystatechange=function(){
if(ajax.readyState==4 && (ajax.status==200||ajax.status==304)){
var response = eval("(" + ajax.responseText + ")");
var s = "<option value=0 seleted ='selected'>请选择</option>";
for(i=0;i<response.length;i++){
s += "<option value="+response[i].menuId+">" + response[i].menuName + "</option>";
parent.innerHTML=s;
}
}
}
ajax.open("post","servlet/Success",true);
ajax.setRequestHeader("Content-type","application/x-www-form-urlencoded");
ajax.send(null); 
}
就是我画两个斜杠的那一句,应该是那样写的吧,但是firebug报错,而且值不能显示,alert的话也什么都没有,弄半天都不行,把我急死啦,请大家帮帮忙啊,看我是不是哪写的不对,谢谢大家了!

解决方案 »

  1.   

    什么情况?
    <form>
    <select id= "menu "   name= "menu " onchange="alert('怎么可能不触发呢?')"> 
    </form>
      

  2.   

    通过js来获取 如果是IE,则使用 
          var spanTest=document.getElementById('sizeSpan'); 
          spanValue = spanTest.outerText;  
    如果是ff,则可以: 
        var spanTest=document.getElementById('sizeSpan'); 
        spanValue  = spanTest.textContent;
      

  3.   

    function  test() { //analysis为select下拉框 var a = document.getElementById("analysis");//下面的为选择的显示内容 alert(a.options[a.selectedIndex].text);}