我想知道我是否使用 .setDisabled(true) 将 EXTJS 应用程序中的组件(即组合框)状态从启用更改为禁用。
幕后究竟发生了什么?是仅仅改变了这个组件的 CSS 还是真的改变了组件的行为?
我问这个是因为我担心安全性,用户是否可以简单地在浏览器中查看源代码并将组件的属性更改回启用?会是这样吗?
如何避免用户更改组件?
我想知道我是否使用 .setDisabled(true) 将 EXTJS 应用程序中的组件(即组合框)状态从启用更改为禁用。
幕后究竟发生了什么?是仅仅改变了这个组件的 CSS 还是真的改变了组件的行为?
我问这个是因为我担心安全性,用户是否可以简单地在浏览器中查看源代码并将组件的属性更改回启用?会是这样吗?
如何避免用户更改组件?
在客户端禁用任何 extjs 组件,您只需更改 UI 的表示和行为。您应该始终在服务器端进行所有安全检查。
setDisabled(true)
将 disabled 属性添加到 HTML 元素。
这意味着如果/当表单被 POST 回服务器时,该控件的值将不包括在内。它还会改变控件的行为,它会变得不可用和不可点击,并且默认情况下,禁用的控件会被 Web 浏览器呈现为灰色。
我相信默认情况下,ExtJS 也会x-disabled
向组件添加一个 css 类,然后您可以将其用于样式目的。
如上所述,在客户端实现的任何安全性也应该在服务器端进行检查。任何人都可以使用 IE 开发工具、FireBug 等来更改 HTML 元素的值,这将绕过您在客户端上设置的任何安全规则。