2011-05-20 19 views
0

我有一個下拉框,下拉列表中的值是從ajax調用生成的。 我的問題是如何處理值更改時的下拉事件。或者如何在onChnage()中調用函數。 iam新的JavaScript建議我。 這是我的代碼::如何處理從ajax調用生成的下拉事件

YAHOO.util.Event.addListener(window, "load", function() { 
    YAHOO.util.Connect.asyncRequest('GET', '/mcm/litter/litterSequenceList', {   
     success:function(o) { 
      data = YAHOO.lang.JSON.parse(o.responseText); 
      generateTablesList(data); 
     }, 
     failure:function(o) { 
      alert(o.statusText); 
     }, 
     scope:this 
    })); 


    function generateTablesList(data) { 
     var list ="<select style='width:125px' id='litterSequences' name='litterSequences'>"; 
     var opt;  
     opt = "<option value='null'></option>"; 
     for (var i=0; i<data.length; i++) { 
      opt = "<option value="+data[i]+">"; 
      opt = opt+data[i]; 
      opt = opt+"</option>"; 
      list = list+opt;  
     }   
     list = list+"</select>"; 
     var listObj = document.getElementById("litterSequence"); 
     if(listObj) { 
      listObj.innerHTML = list; 
     } 
    } 
}); 

回答

1

我覺得這是最簡單的方法:

YAHOO.util.Event.addListener(window, "load", function() { 
    YAHOO.util.Connect.asyncRequest('GET', '/mcm/litter/litterSequenceList', {   
     success:function(o) { 
      data = YAHOO.lang.JSON.parse(o.responseText); 
      generateTablesList(data); 
     }, 
     failure:function(o) { 
      alert(o.statusText); 
     }, 
     scope:this 
    })); 


    function generateTablesList(data) { 
     var list ="<select style='width:125px' id='litterSequences' name='litterSequences'>"; 
     var opt;  
     opt = "<option value='null'></option>"; 
     for (var i=0; i<data.length; i++) { 
      opt = "<option value="+data[i]+">"; 
      opt = opt+data[i]; 
      opt = opt+"</option>"; 
      list = list+opt;  
     }   
     list = list+"</select>"; 
     var listObj = document.getElementById("litterSequence"); 
     if(listObj) { 
      listObj.innerHTML = list; 
     } 

     var dropDown = document.getElementById("litterSequences"); 
     dropDown.onchange = function() { 
      // Whatever you need to do 
     }; 
    } 
}); 

當然你也可以在其他地方定義的處理程序,例如:

function onLitterSequencesChange() { 
    // Your code 
} 

和:

(...) 
var dropDown = document.getElementById("litterSequences"); 
dropDown.onchange = onLitterSequencesChange; 
(...) 
+0

嘿......它的工作thanx rciq。 – srini 2011-05-20 12:59:44

相關問題