162

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

或者,如果这不可能,是否有任何方法可以阻止字段使用 css 或任何其他属性进行编辑,而不是禁用而不隐藏它们?

我目前的特殊情况是应该以表单(不可编辑)显示的数据集的标识符 - 如果没有更好的解决方案,我认为除了禁用的字段之外,我将使用隐藏字段来保存实际值与禁用的一个显示它。

4

4 回答 4

43

As it was already mentioned: READONLY does not work for <input type='checkbox'> and <select>...</select>.

If you have a Form with disabled checkboxes / selects AND need them to be submitted, you can use jQuery:

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

This code removes the disabled attribute from all elements on submit.

于 2017-06-25T09:27:18.283 回答
17

在要“禁用”(可能与灰色背景一起)的字段上使用 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

于 2018-03-08T19:36:27.417 回答
2

我们还可以将只读属性与以下属性一起使用 -

只读 onclick='return false;'

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

于 2018-07-20T11:24:45.580 回答
1

将 CSS 或类添加到在 select 和 text 标签中工作的输入元素,如

样式="指针事件:无;背景颜色:#E9ECEF"

于 2019-05-14T05:28:11.530 回答