我需要使用Play框架获取未选中复选框的值。如果我选中复选框,我可以获得该值。
我的HTML如下
<input type="checkbox" name="correctAnswer" value="true">
这就是我在控制器中获取数据的方式,它为我提供了一系列仅选中的复选框
String[] segaMega = request().body().asFormUrlEncoded().get("correctAnswer");
我已经尝试在复选框技巧之前做隐藏字段,但这并没有很好地工作。游戏有什么可以帮助我吗?
答案 0 :(得分:0)
根据您的评论,您确实需要在服务器端同时拥有选中的值和完整的值列表。最好的选择是在表单中有一个隐藏字段,它将保存由分隔符连接的复选框的值。在这个例子中,我将使用管道(|
)。
<script type="text/javascript">
function beforeSubmitQuestion() {
var hidden = document.getElementById("hidChxValues");
hidden.value = "";
var checkboxes = document.getElementsByName("correctAnswer");
for(var i = 0; i < checkboxes.length; i++) {
hidden.value += checkboxes[i].value + "|";
}
return false;
};
</script>
<form id="yourForm" onsubmit="beforeSubmitQuestion(); ">
<input type="hidden" id="hidChxValues" />
<input type="checkbox" name="correctAnswer" value="true" /> Valid
<br />
<input type="checkbox" name="correctAnswer" value="false" /> Invalid
<br />
<input type="submit" />
</form>
我在jsfiddle中进行了测试:http://jsfiddle.net/tdDbg/,但我使用type="text"
而不是type="hidden"
来查看连接值并添加了return false;
在onsubmit
的末尾,以避免表单提交到服务器(将返回错误)。
服务器端代码可以使用Play或其他技术处理,甚至是普通的Servlet。