使用struts2中的s:checkboxlist选择多个复选框,显示结果
我有一个复选框列表,如下所示:使用struts2中的s:checkboxlist选择多个复选框,显示结果,struts2,checkboxlist,Struts2,Checkboxlist,我有一个复选框列表,如下所示: <s:checkboxlist list="books" name="checked" theme="simple" cssStyle="vertical" listKey="code" listValue="description" > </s:checkboxlist> <s:submit value="submit" name="submit"/> 我有一些复选框,
<s:checkboxlist list="books" name="checked" theme="simple" cssStyle="vertical"
listKey="code" listValue="description" > </s:checkboxlist>
<s:submit value="submit" name="submit"/>
我有一些复选框,如学术、小说、烹饪食谱等。也就是说,有多个复选框,我可以从中选择多个选项。比如说,我选择了小说和学术,那么小说和学术下的所有书籍都应该显示出来。如果我只选择小说,则只需显示小说类别下的书籍。我想有一个提交按钮,当点击它列出所有的书籍根据选定的类别
当我尝试在checkboxlist中使用onchange功能时(您可以在下面看到的第二个代码),它不适用于多个选项,即,只要我选中一个复选框(例如小说),页面就会自动刷新,然后我才能选中其他复选框并仅显示该特定类别(例如小说)下的书籍. 因此,以下内容不允许我选中多个复选框。我还有别的方法可以做到这一点吗
<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();
}
功能搜索簿(book){
var bookValue=账面价值;
document.getElementById(“book”).value=bookValue;
document.forms[0]。提交();
}
谢谢大家! 嗨@Pravin,我已经按照你的要求进行了编辑和阐述。我希望现在已经很清楚了。书籍的选择应该基于
学术、小说、烹饪食谱
,那么为什么要将onchange
放在书籍复选框
上,以及学术、小说、烹饪食谱
复选框上是否有onchange事件,如果你为这些复选框调用相同的函数,那就是搜索书(书籍)
那么在提交页面文档时可能会出现问题。表单[0]。提交()代码>你好@Pravin,谢谢。我试过上面的代码。结果的显示方式与AND条件类似。i、 例如,假设我检查小说和学术,输出为“无”,因为它可能正在查找包含这两个类别的单个书籍。相反,我希望结果包含小说类的所有书籍以及学术类的所有书籍,就像“或”条件一样。我现在得到了结果。。在后端做了一些更改,现在就得到了结果!非常感谢你的帮助!嗨,普拉文,我还有一个问题。是否有任何方法可以在页面刷新后保留选中复选框的值(即,当页面刷新以在document.forms[0].submit()之后提供输出时)?您能否解释一下@Pravin如何执行此操作,因为我不太清楚这一点?请提供一个例子
<s:checkboxlist list="books" name="checked" theme="simple" cssStyle="vertical"
listKey="code" listValue="description" onchange="searchBook(this)" > </s:checkboxlist>
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();
}
}