如何设置复选框的值,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。
答案 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>