设置为disabled与readonly的元素都不能进行输入操作,但它们依旧存在显著的差异,稍微处理不好,就会得到难以预料的结果。
1. disabled的元素不会响应任何事件
disabled不会对任何事件进行响应,包括click等各类鼠标事件,而readonly的元素不仅会响应click事件,还能响应focus事件(但难以保持,会马上出发blur事件),所以对于按钮的状态,只设置为readonly是不够的。
2. disabled的元素的值不会提交
在表单中,如果输入框被设置为disabled,那么它键和值都不会包含在表单中,所以不能提交,而readyonly的元素则可以提交,所以如果要排除一个值,只需要将其或者其所在的容器设置为disabled即可。
最后需要注意的是,无论是disabled还是readonly,它们的设置都应该是枚举值,分别是“disabled”与“readonly”,如果要取消相应的状态,只能删除相应的属性,需要注意的是布尔值对它们无效。