2014-12-03 322 views
1

的CheckBoxList我有一個的CheckBoxList如下所示:顯示基於選擇使用S多個複選框的結果:在Struts2

<s:checkboxlist list="books" name="checked" theme="simple" cssStyle="vertical"      
listKey="code" listValue="description" > </s:checkboxlist> 
<s:submit value="submit" name="submit"/> 

我有複選框如學者,小說,烹飪食譜等即,有多個複選框,我可以從中選擇多個選項。比如說,我選擇了小說和學者,然後顯示所有小說和學者下的書籍。如果我只選擇小說,那麼只能顯示小說類別下的圖書。我希望有一個提交按鈕,點擊時可以根據所選類別列出所有圖書。

當我嘗試使用checkboxlist(第二個代碼,如下所示)中的onchange函數時,它不適用於多選,即,只要我檢查單個複選框(例如,fiction),頁面刷新在我可以檢查其他複選框並僅顯示該特定類別(即小說)下的書籍之前自動進行。所以,以下不允許我檢查多個複選框。有沒有其他辦法可以實現這一目標?

<s:checkboxlist list="books" name="checked" theme="simple" cssStyle="vertical"      
listKey="code" listValue="description" onchange="searchBook(this)" > </s:checkboxlist> 


function searchBook(book){ 
var bookValue = book.value; 
document.getElementById("book").value = bookValue;  
document.forms[0].submit(); 
} 

謝謝!

+0

嗨@Pravin,我已經編輯,並闡述了作爲你的要求。我希望現在很清楚。 – Gsm 2014-12-04 13:38:34

+0

應該根據「學術,小說,烹飪食譜」來選擇書籍,然後爲什麼你把'onchange'放在'books checkbox'上,並且在學術,小說,烹飪食譜的checkbokes上有onchange事件,如果你爲這些調用相同的函數checkBook是'searchBook(book)',那麼當你提交頁面document.forms [0] .submit();' – Pravin 2014-12-04 14:03:29

回答

1
<s:checkboxlist list="books" name="checked" theme="simple" cssStyle="vertical" 
listKey="code" listValue="description" onchange="searchBook(this)" > </s:checkboxlist> 

可以使用onchangeonclick

var lastVal = ""; // globale variable 
    function searchFunction(){ 
     var checkboxes = document.getElementsByName('checked'); 
     var vals = ""; 
     for (var i=0, n=checkboxes.length;i<n;i++) { 
      if (checkboxes[i].checked) 
      { 
      vals += ","+checkboxes[i].value; 
      } 
     } 
     if (vals) vals = vals.substring(1); 
     if(vals != "" && lastVal != vals){ 
      lastVal = vals; 
      document.getElementById("book").value = vals;  
      document.forms[0].submit(); 
     } 

    } 
+0

hi @Pravin時,你可能會遇到問題,謝謝。我試過上面的代碼。結果顯示爲AND條件的結果。即假設我檢查小說和學者,輸出是'無',因爲它可能在尋找包含這兩個類別的個人書籍。相反,我希望結果包含小說類別下的所有書籍以及學術類別下的所有書籍,就像'OR'條件。 – Gsm 2014-12-05 16:51:06

+0

你所做的顯示書籍? – Pravin 2014-12-05 17:07:39

+0

我現在得到了結果..在後端做了一些改變,現在得到了結果!非常感謝你的幫助! – Gsm 2014-12-05 17:31:55

相關問題