2014-12-03 46 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

相关问题