2015-11-16 115 views
1

有一个在我的jsp页面复选框复选框值,如果未选中

<input type="checkbox" name="myCheck" id="myCheck"> 

我提交表单,并在服务器端,我想用捡回来

request.getParameter("myCheck"); 

如果我选中了该复选框,它将作为true来请求,否则它不在请求对象中。

我的要求是,如果我没有检查它,它也应该是假的。 有什么建议吗?

UPDATE

我使用GET方法是的,它是存在于我提交表单。

+0

纠正你的代码的名称应与该ID我的意思是字母C和小C ;你能否提供更多的表单标签信息(更多代码)以及你提交的方式(按钮提交标签) – shareef

+1

你是否围绕这个复选框包装了一个表单?如果是这样,你使用哪种方法(Post或Get)? – reporter

+1

@shareef同步名称和标识符是不是nessecary。 – reporter

回答

2

accepted answer in stackoverflow

您如何知道如果检查

澄清..

例如:

<input type="hidden" name="checkboxNamesList" value="nameCheckbox1" /> 
<input type="hidden" name="checkboxNamesList" value="nameCheckbox2" /> 
<input type="hidden" name="checkboxNamesList" value="nameCheckbox3" /> 
<input type="hidden" name="checkboxNamesList" value="nameCheckbox4" /> 

然后,你可以得到复选框来自请求的NamesList(它将是一个String []),因此您将拥有所有复选框参数名称。如果你得到一个复选框名称的参数和值为null,这意味着复选框没有被检查

好吧,因为未检查的复选框不存在于请求中,你不知道JSP中其复选框没有但是你需要知道它,才能在数据文件中写入类似checkbox_name1 = unchecked的东西。

那么,该怎么做?首先,您需要知道请求中存在哪些复选框(取消选中或不选中)。对于这一点,你可以用下面的代码,并得到所有的复选框的名字出现在JSP:

String[] checkboxNamesList= request.getParameterValues("checkboxNamesList"); 

然后,让寻找选中checboxes:

for (int i = 0; i < checkboxNamesList.length; i++) { 

    String myCheckBoxValue = request.getParameterValues(checkboxNamesList[i]); 

    // if null, it means checkbox is not in request, so unchecked 
    if (myCheckBoxValue == null) 
     writer.append(checkboxNamesList[i] + "=unchecked"); 

    // if is there, it means checkbox checked 
    else 
     writer.append(checkboxNamesList[i] + "=checked"); 

} 
1

我不明白为什么值不在请求对象中。我认为一个可能的错误是缺失的值属性。

你的第二个问题: 在后端,你必须先定义一个默认值,然后检查空:

public boolean myCheckBox = false; 
if (request.getParameter("myCheck") != null) {myCheckBox = true} 
相关问题