不得发送隐藏的输入

时间:2015-09-04 05:04:30

标签: javascript jquery

我有一个input列表与name相同,默认隐藏。 我根据select值显示它们显示,我想禁用隐藏的输入,这样当我提交表单时它们不会发生冲突。 我该怎么做?

js

<script type="text/javascript">
    $(document).ready(function() {
        $("#report_type").change(function() {
            $("#type_wrap > input").hide();
            $("#" + $(this).val()).show();

        });
    });
    </script>

4 个答案:

答案 0 :(得分:1)

如果要禁用输入元素,请将其disabled属性设置为true。要重新启用它,请将其disabled属性设置为false

$("#type_wrap > input").hide().prop('disabled', true);
$("#" + $(this).val()).prop('disabled', false).show();

注意:提交表单时,浏览器不应包含已禁用的输入元素的值。 (reference

答案 1 :(得分:1)

您想要禁用不可见的输入吗?

我在考虑

$("#type_wrap > input").not("visible").prop("disabled",true)

但这更简单

$(function() {
    $("#report_type").on("change",function() {
        $("#type_wrap > input").prop("disabled",true).hide();
        $("#" + $(this).val()).prop("disabled",false).show();
    });
});

答案 2 :(得分:0)

尝试使用argv[1]

input属性disabled设置为true
.prop("disabled", true)

答案 3 :(得分:0)

尝试删除或隐藏元素

删除

   $(document).ready(function() {
        $("#report_type").change(function() {
            $("#type_wrap > input").prop("disabled", true).hide();
            $("#" + $(this).val()).show();

        });
    });

停用

$("#type_wrap > input").remove();

这会阻止元素提交。