如果单击按钮时未选中复选框,则复选框应发送false

时间:2018-05-26 18:57:56

标签: javascript html

<html>
<head>
    <title></title>
    <script src="jquery-1.11.2.js"></script>
    <script>
        $(function() {
            $('#chek').click(function () {
                if ($(this).attr('checked')) {
                    $("#btnSubmit").html("true");
                }
                else {
                    $("#btnSubmit").html("false");
                }
            });
        });
    </script>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>

<body>
<div>
    <form method="post">

       <input type="checkbox" id = "chek" name="readAlread" value="true"> true
        <input type="checkbox" name="readAlread" value="false"> false
        <br>
        <br>
        <input id ="btnSubmit" type="submit" value="submit" onclick="chek">Добавить
    </form>
</div>
</body>
</html>

抱歉,我是新手,在互联网上无处不在,但找不到我的问题的答案..如果未选中该复选框,我需要向服务器发送false。在服务器上我有一个存储类型的变量boolean在IDEA中工作,使用java,spring,hibernate。在控制器类中,我有一个请求

@PostMapping("/add")
    public String add(@RequestParam Boolean readAlready, Map<String, Object> model) {
     ......
        return "main";
    }

Еслияневыбираюгалочкувchentboxeтоуменявылетаетошибканасайте

Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.

Sat May 26 20:09:56 MSK 2018
There was an unexpected error (type=Bad Request, status=400).
Required Boolean parameter 'readAlready' is not present

2 个答案:

答案 0 :(得分:0)

为什么不只有一个复选框(而不是两个),并在服务器上读取值(checked = true,not checked = false)?拥有两个复选框会带来奇怪的用户体验,而且您的解决方案也会变得不必要地复杂化。

复选框的状态(选中/取消选中)作为表单的一部分提交给服务器。请在那里阅读。

答案 1 :(得分:0)

这听起来像你想要一个无线电控制而不是复选框的情况。无线电允许您为一个输入名称提供多个选项,如果单击相反的选项,将自动交换。这也将消除您对javascript的需求。

<input type="radio" name="readAlread" value="true"> true
<input type="radio" name="readAlread" value="false"> false

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/radio