禁用表单字段不提交数据

bar*_*iir 140 html css forms disabled-input

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

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

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

Ste*_*ard 222

查看readonly属性http://www.w3schools.com/tags/att_input_readonly.asp

  • 问题是ready-only属性在select表单元素中不是真正的只读.我仍然可以从下拉列表中选择只读的另一个选项,因此无法实现其目的. (8认同)

Adi*_*att 59

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

<input type="textbox" name="Percentage" value="100" disabled="disabled" /> 
Run Code Online (Sandbox Code Playgroud)

仅供参考,

  1. 禁用的控件无法获得焦点.
  2. 标签导航中会跳过已禁用的控件.
  3. 禁用的控件无法成功发布.

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

<input type="textbox" name="Percentage" value="100" readonly="readonly" />
Run Code Online (Sandbox Code Playgroud)

仅供参考,

  1. 只读元素获得焦点,但用户无法修改.
  2. 标签导航中包含只读元素.
  3. 只读元素已成功发布.

注意: READONLY不适用于复选框和选择标记

参考


Mar*_*ner 12

正如已经提到的那样:READONLY不适用于<input type='checkbox'><select>...</select>.

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

$('form').submit(function(e) {
    $(':disabled').each(function(e) {
        $(this).removeAttr('disabled');
    })
});
Run Code Online (Sandbox Code Playgroud)

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


Tom*_*Tom 5

在您要“禁用”(可能带有灰色背景)的字段上使用CSS指针事件:无,该字段允许POST操作,例如:

<input type="text" class="disable">

.disable{
pointer-events:none;
background:grey;
}
Run Code Online (Sandbox Code Playgroud)

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


小智 5

我们还可以使用具有以下属性的只读 -

只读 onclick='返回 false;'

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