为复选框指定值(true或false)

时间:2014-03-31 06:06:33

标签: java javascript jsp checkbox

如何设置复选框的值,true或false。

<%    Boolean inactive = Boolean.valueOf(request.getParameter("isCheckedUnmatch"));
boolean isChecked = inactive.booleanValue();
%>

<script language = javascript>
function chgFlag(isChecked){
alert(isChecked);
isChecked = true;
}
</script>

<td align = "left">
<input name = "chkUnmatch" type = "checkbox" value = "<%=isChecked%>" onclick = "if (this.checked==true){chgFlag(<%=true%>)}">
<font face = "verdana" size = "2"><b>Unmatch Payment</b></font>
</td>

我已经尝试过这段代码,即使我选中了这个框,java控制器中的boolean值仍为false,为默认值。

注意:我正在使用Java 1.3,这是开发应用程序时的最新版本的Java。

3 个答案:

答案 0 :(得分:1)

你可以试试这个:

<input type="checkbox" name="chkUnmatch" onclick="chgFlag(this.checked)" value="" id="box"/>

<script>
  function chgFlag(chk){
    var box = document.getElementById("box");
    box.value = chk;
  }
  <%
  Object tmp = request.getParameter("isCheckedUnmatch");
  if (null != tmp) {
    boolean mrk = Boolean.valueOf(tmp);
  %>
    chgFlag(<%=mrk%>);
  <%}%>
</script>

答案 1 :(得分:1)

首先,在JSP java代码和Scriptlets(<% %><%! %><%= %>),表达式${}等所有都在HTML之前处理,javascripts和css被处理。

  

即使我选中了该框,也是java中boolean的值   controller仍为false,默认值为。

如果要在选中/取消选中复选框时更改服务器端变量值(即控制器,模型,Servlet等),有以下几种方法:

1)使用AJAX向服务器发送变量值更改请求:

HTML页面如:

<form id="myForm" action="servletUrlPattern" method="post">
    <input name="chkUnmatch"
        type="checkbox"
        onclick="if (this.checked==true){chgFlag(true)}">Check Box
    <input type="submit"/>
</form>
<script src="//code.jquery.com/jquery-1.9.1.js"></script>
<script type="text/javascript">
 function chgFlag(isChecked){
     console.log('isChecked: '+isChecked);
     $.post( $('#myForm').attr('action'), { valueToChange : isChecked }).done(function( data ) {
            alert( "Data Loaded: " + data );
      });
 }
</script>

并在Servlet中:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    System.out.println("doPost() invoked..");

    Boolean valueToChange = Boolean.valueOf(request.getParameter("valueToChange"));
    System.out.println("valueToChange:"+valueToChange);
    //Here, Do your works..
    response.getWriter().write("successfully changed.");        
}

<强> 2)

使用表单和提交按钮。

<小时/> 也可以看看: jquery post doc

答案 2 :(得分:0)

这应该有所帮助。

<强> EXSAMPLE

<html>
    <head>
        <script type="text/javascript">
            function refreshCheckboxValue(checkbox){
                checkbox.value = checkbox.checked;
            }
        </script>
    </head>
    <body>
        <input type="checkbox" onclick="refreshCheckboxValue(this)" value="false"/>
    </body>
</html>