首页 文章

禁用表单字段不提交数据

提问于
浏览
129

有没有办法(使用属性标志或类似的东西)启用禁用提交数据的表单字段?

或者,如果那是不可能的,有没有办法阻止字段使用css或任何其他属性进行编辑而不是隐藏它们?

我的特殊情况是一个数据集的标识符,应该以表格形式显示(不可编辑) - 如果没有更好的解决方案,我想我会使用一个隐藏字段,除了被禁用的字段以保持实际显示它的已禁用值 .

5 回答

  • 55
  • 11

    未提交具有 Disabled 属性的元素,或者您可以说他们的值未发布 .

    <input type="textbox" name="Percentage" value="100" disabled="disabled" />
    

    仅供参考,

    • 禁用的控件无法获得焦点 .

    • 在选项卡导航中跳过禁用的控件 .

    • 无法成功发布已禁用的控件 .

    您可以在案例中使用 readonly 属性,这样您就可以发布您的字段数据 .

    <input type="textbox" name="Percentage" value="100" readonly="readonly" />
    

    仅供参考,

    • 只读元素获得焦点但用户无法修改 .

    • 标签导航中包含只读元素 .

    • 只读元素已成功发布 .

    Note: READONLY不适用于复选框和选择标签

    Ref from

  • 205

    如前所述: READONLY 不适用于 <input type='checkbox'><select>...</select> .

    如果你有一个带有禁用的 Form 复选框/选择并且需要提交它们,你可以使用jQuery:

    $('form').submit(function(e) {
        $(':disabled').each(function(e) {
            $(this).removeAttr('disabled');
        })
    });
    

    此代码从提交中的所有元素中删除 disabled 属性 .

  • 3

    在要禁用的字段上使用CSS pointer-events:none(可能与灰色背景一起),允许POST操作,如:

    <input type="text" class="disable">
    
    .disable{
    pointer-events:none;
    background:grey;
    }
    

    参考:https://developer.mozilla.org/en-US/docs/Web/CSS/pointer-events

  • 0

    我们也可以只使用以下属性的readonly -

    readonly onclick ='return false;'

    这是因为如果我们只使用readonly那么单选按钮将是可编辑的 . 为了避免这种情况,我们可以使用readonly与上面的组合 . 它将限制编辑,元素的值也将在表单提交期间传递 .

相关问题