我有两页HTML表单。第一页有一个提交表单,第二页有一个确认表单。第一个表单提供了许多控件的选择,而第二个页面再次显示来自提交表单的数据,并显示确认消息。在第二种形式中,所有字段必须是静态的。
从我所看到的,一些表单控件可以是只读的,所有控件都可以被禁用,区别在于你仍然可以选择一个只读字段。
而不是按字段做这个是否有任何方法标记整个表单为只读/禁用/静态,这样用户就不能改变任何控件?
我有两页HTML表单。第一页有一个提交表单,第二页有一个确认表单。第一个表单提供了许多控件的选择,而第二个页面再次显示来自提交表单的数据,并显示确认消息。在第二种形式中,所有字段必须是静态的。
从我所看到的,一些表单控件可以是只读的,所有控件都可以被禁用,区别在于你仍然可以选择一个只读字段。
而不是按字段做这个是否有任何方法标记整个表单为只读/禁用/静态,这样用户就不能改变任何控件?
当前回答
要在angular中有条件地禁用整个fieldset,你可以这样做:
<fieldset [attr.disabled]="isEditable ? null : 'disabled'">
其他回答
你可以在表单上使用一个不透明的图层:
放置位置:相对于表格 添加透明块div作为这个表单的子元素,position: absolute,并且上、下、左、右等于0
我宁愿使用jQuery:
$('#'+formID).find(':input').attr('disabled', 'disabled');
Find()将比children()深入到第n个嵌套子,children()只查找直接子。
<form inert>
这不会改变表单的样式,但会阻止所有输入的可聚焦性和任何按钮的可点击性。
所有浏览器都支持的另一种简单方式是:
HTML:
<form class="disabled">
<input type="text" name="name" />
<input type="radio" name="gender" value="male">
<input type="radio" name="gender" value="female">
<input type="checkbox" name="vegetarian">
</form>
CSS:
.disabled {
pointer-events: none;
opacity: .4;
}
但是请注意,这种方法下的标签仍然有效,用户仍然可以操作带有焦点的元素。
要在angular中有条件地禁用整个fieldset,你可以这样做:
<fieldset [attr.disabled]="isEditable ? null : 'disabled'">