2014-03-31 96 views
0

如何将值设置为复选框,true或false。为复选框赋值(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控制器的布尔值仍是假的,它的默认值。

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

+0

输入标签丢失和字体标签无法正常关闭。将输入标签的id属性分配为“isCheckedUnmatch”。如果您将onclick函数作为单独的函数写入,则会更好。 –

+0

我尝试过Arvind和drkunibar的输入。没有工作。 – coferniecus

+1

为什么你试图获得'request.getParameter(“isCheckedUnmatch”)'?它不应该是'request.getAttribute(“isCheckedUnmatch”)? – drkunibar

回答

1

首先,在JSP的java代码和脚本(<% %><%! %><%= %>),表达${}等所有在HTML,JavaScript和CSS被处理之前被处理。

即使我选中该框,来自java 控制器的布尔值的值仍然是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

+0

我忘了提及这是Java 1.3,一个我支持的遗留应用程序。 – coferniecus

+0

@coferniecus这应该适用于Java 1.3。发生了什么错误或异常? – Rembo

1

U可以试试这个:

<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> 
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> 
相关问题