【问题标题】:How to send the disabled element value to server?如何将禁用的元素值发送到服务器?
【发布时间】:2014-09-23 11:49:13
【问题描述】:

我有下一个复选框:

<input type="checkbox" value="true" name="permanentEmployee" checked="" id="permanentEmployee" disabled="">

我已将属性disabled 设置为true 并提交了表单

$("#permanentEmployee").prop('disabled', true);`

在服务器端,如果我这样做:

request.getParameter("permanentEmployee")

我得到的值是 Null,但如果我不禁用复选框,我会得到正确的值(即 True)。为什么即使选中,我也没有将禁用的复选框值设为 True

【问题讨论】:

    标签: javascript jquery html checkbox


    【解决方案1】:

    禁用的表单元素不会通过表单提交发送。 你可以考虑改用只读方式

    一个想法是

    $('#permanentEmployee').click(function(){
            return false; // even if the user clicks on it it will not change
    });
    
    $('#permanentEmployee').prop('checked', true);
    

    http://jsfiddle.net/Spokey/M3LfA/1/

    【讨论】:

    • 如果您通过 CSS 禁用,还会出现这种情况吗?
    • @user3759531 你如何通过 CSS 禁用它?
    • 抱歉,我以为你可以用 css 做到这一点
    • “只读”属性对复选框无效...仅适用于文本类型字段、文本、电子邮件、数字等。
    • 但是我没有在 jquery 或 javascript 中找到任何东西来使复选框只读而不是禁用。有什么想法吗?
    【解决方案2】:

    就在提交表单(onsubmit 监听器)之前,您可以启用该复选框。

    【讨论】:

      【解决方案3】:

      禁用的复选框(可能还有其他表单元素)不会发送到服务器。

      这里有几个解决方案:How to ensure a <select> form field is submitted when it is disabled?

      【讨论】:

        猜你喜欢
        • 2021-12-03
        • 1970-01-01
        • 2017-02-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-09-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多