如何检查复选框是否被选中

3
我在表单上有一个复选框。
<input class="addToFavorite" type="checkbox" name="addToFavorite"> Add to favorite

现在在表单提交时,我使用以下代码检查此复选框是否已选择。但它每次都返回 true。我该如何检查复选框是否真正被选中?

boolean wantAddToFavorites = false;
            if (isPayAction) {
                wantAddToFavorites = request.getParameter("addToFavorite").equals("on");
            } 

FireBug结果

图片描述在此

正如您所看到的,它总是发送它的值。


1
你能详细描述一下这个问题吗?我发现这里有几个东西缺失,比如复选框的值。 - Janny
@Smutje- 问题附带了Java标签。 - Yogesh Prajapati
请添加更多标签 - naveejr
这只是我的问题。所以我忘记了我通过ajax发布表单。我动态创建的表单中忘记将此复选框值放入该表单中。 - AEMLoviji
2个回答

4

如果您想在服务器端检查复选框是否被选中,应按照以下步骤操作:

1. 给您的复选框添加一个值

<input class="addToFavorite" type="checkbox" name="addToFavorite" value="addToFavourite"> Add to favorite</input> 

2. 在服务器端检查此复选框的值

if(request.getParameter("addToFavorite") == null){
    //checkbox not checked
}else{
    //checkbox checked
}

不,它不起作用。我已经为复选框添加了value属性。但是条件request.getParameter("addToFavorite") == null每次都返回true。 - AEMLoviji
请再次检查您的复选框名称和 getParameter(..) 调用中的值。它们必须匹配,否则它将无法工作。还要确保您为复选框使用的名称是唯一的。如果您将多个复选框分组在同一个名称下,则必须使用 request.getParameterValues("addToFavorite") - Daniel
请查看我的帖子。我已经添加了FireBug截图。 - AEMLoviji
请更新您的帖子,加入更多来自服务器端的代码。也许问题就出在那里。我非常确定这一定能够运行。 - Daniel
我看到你的服务器端代码是这样的:wantAddToFavorites = request.getParameter("addToFavorite").equals("on");。你尝试过以下代码吗:wantAddToFavorites = request.getParameter("addToFavorite") != null; - Daniel
显示剩余3条评论

3

在复选框中,value属性保存被选中时发送的字符串。默认情况下,它会发送字符串“on”。

决定是否选中的是checked属性。

示例:

    <input type="checkbox" name="check1" checked />               Sends "on"  
    <input type="checkbox" name="check2" />                       Sends null
    <input type="checkbox" name="check3" value="hello" checked /> Sends "hello"  
    <input type="checkbox" name="check3" value="hello" />         Sends null.

1
非常好的解释。 - ErShakirAnsari

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接