Html 处理表单上锁定/禁用字段的最佳方法?

Html 处理表单上锁定/禁用字段的最佳方法?,html,forms,user-interface,user-experience,Html,Forms,User Interface,User Experience,我需要用户只能编辑网络表单上的某些字段,而不能编辑其他字段。例如,这可能是由于用户权限造成的 我不确定处理这件事的最佳方法 将表单属性设置为禁用。问题是禁用的字段不会被提交,所以我要么需要包含隐藏的表单字段,要么需要在我的模型中满足这一点(即只更新不应更改的字段) 将属性设置为只读。可能比上面更好,因为这些字段会自动过帐 根本不使用表单字段-只需在html中回显变量即可。可能包括一个隐藏的表单字段,或者只包含不应在模型中更改的更新字段 无论是从用户体验的角度,还是从一般应用程序的角度,我都不确定

我需要用户只能编辑网络表单上的某些字段,而不能编辑其他字段。例如,这可能是由于用户权限造成的

我不确定处理这件事的最佳方法

  • 将表单属性设置为禁用。问题是禁用的字段不会被提交,所以我要么需要包含隐藏的表单字段,要么需要在我的模型中满足这一点(即只更新不应更改的字段)

  • 将属性设置为只读。可能比上面更好,因为这些字段会自动过帐

  • 根本不使用表单字段-只需在html中回显变量即可。可能包括一个隐藏的表单字段,或者只包含不应在模型中更改的更新字段


  • 无论是从用户体验的角度,还是从一般应用程序的角度,我都不确定处理这个问题的最佳方法。

    您应该始终在您的模型中,在服务器端处理这个问题。我不知道你的申请是否会被公开使用?但是在客户端更改必需或禁用的属性以使用表单元素是相当容易的。

    我的选择是#3或根本不显示表单字段:如果用户不能对表单字段执行任何操作,则不应显示它们。如果有办法在当前交互中启用禁用字段,我会使用该字段。无法以任何明显方式启用的禁用字段会让人困惑,如果无法编辑它,我会认为自己做错了什么。

    我一直使用禁用/隐藏组合解决方案,即

    <input type="text" name="name-disabled" disabled="disabled" value="<?php echo $name; ?>" />
    <input type="text" name="name" value="<?php echo $name; ?>" />
    

    从用户界面的角度来看,不要向用户显示任何他们不需要看到的内容。并不是说只读信息没有位置,而是应该考虑每一位,看看它是否需要在特定的上下文中。简单的表单可以减少混乱,减少用户时间,让用户更快乐

    我想这是一个意见的问题,但我相信用户体验往往被忽视,而它通常应该是表单最重要的设计标准之一

    代码的角度来看,您是对的,您必须稍微调整一下。隐藏的表单字段当然是可能的,但它们容易受到操纵,在您的特定情况下,这可能是安全问题,也可能不是安全问题


    可能通过隐藏字段提交的任何内容都已经是已知值。您没有指定正在使用哪个框架(如果有的话),但在提交的表单数据进入数据库之前,可能会添加(修改和验证)表单数据。如果用户没有更改字段的权限,您可以从表单中删除该字段,并在将其写入数据库之前将其添加为默认值。

    您是否在服务器上使用任何类型的应用程序框架,或者这完全是一个HTML问题?哦,我不知道您可以在客户端更改所需或禁用的属性。但是我仍然需要显示值,所以我认为最方便用户的方法是将它们回显出来?如果确实需要显示值,回显它们是一个很好的解决方案是的。