2010-08-03 94 views
2

我正在嘗試創建一個讓用戶添加3個學校的表單。他們首先選擇選擇一個州,然後根據州情況填寫大學名單。各國都在準備方法中加載。我使用的是struts 2.1.8和struts-jquery 2.3.1。struts2未發佈主題

<label for="state1">State: </label> 
      <s:select 
       id="state1" 
       name="state1" 
       list="stateMap" 
       headerKey="-1" 
       headerValue="Please Select a State" 
       onchange="getColleges();" 
      /><br /> 


      <label for="college1">College 1: </label> 
      <sj:select 
       href="loadCollegesByState" 
       id="college1" 
       name="college1" 
       list="collegeList" 
       listKey="key" 
       listValue="value" 
       listenTopics="state1_change" 
       reloadTopics="state1_change" 
       headerKey="-1" 
       headerValue="Please Select a College" 
      /><br /> 

的JavaScript

<script type="text/javascript"> 
function getColleges() { 
    alert('loading....schools'); 
    $.publish('state1_change'); 

} 
</script> 

此作品爲第一個下拉菜單。但我想讓它自動完成。我怎樣才能做到這一點? 以下不起作用。

<sj:autocompleter 
     href="loadCollegesByState" 
     id="college1" 
     name="college1" 
     list="collegeList" 
     listKey="key" 
     listValue="value" 
     listenTopics="state1_change" 
     reloadTopics="state1_change" 
/><br /> 

回答

0

您如何定義您的href網址?我在代碼中看不到任何s:url標記?

<s:url id="collegesurl" action="loadCollegesByState" namespace="/"/> 
      <sj:select 
       href="%{collegesurl}" 
       id="college1" 
       name="college1" 
       list="collegeList" 
       listKey="key" 
       listValue="value" 
       listenTopics="state1_change" 
       reloadTopics="state1_change" 
       headerKey="-1" 
       headerValue="Please Select a College" 
      /> 

你也可以看看你的XHR網絡流量與螢火蟲,看看你的json行動是否成功調用。

+0

href =「action_name」也有效。看來,我只是忘記在更改我的java文件後重新啓動服務器。這依賴下拉的作品。我需要做出什麼樣的改變才能擁有自動完成功能? – Nish 2010-08-03 17:56:47

+0

我將其更改爲autocompleter,但不起作用,操作未被調用。見上面的代碼。 – Nish 2010-08-03 18:02:46