我有一个网站(很多)。我想显示但是根据他们是否登录来禁用特定表单。我显示用户是否登录的方式是通过PHP设置的cookie。我想知道的是在用户未登录时禁用表单中所有元素的最佳方法。
我目前的解决方案是让PHP到echo
一些JavaScript(确切地说是jQuery)到页面:
$("#form_name").children("input, textarea").attr("disabled", "disabled");
这是正确的方法,还是有更好的方式做事?
答案 0 :(得分:3)
如果您在PHP生成页面时设置了cookie,则只需在没有Javascript的HTML元素上设置disabled属性。然后,如果您有ajaxy登录表单,则可以解析登录响应并根据该表单启用表单。如果登录不是ajaxy,PHP应该为您设置cookie并适当地构建页面。
答案 1 :(得分:2)
使用jQuery,您可以使用:enabled selector
找到当前未被禁用的所有input,select和textarea元素并禁用它们$("#form_id").find("input:enabled, select:enabled, textarea:enabled").attr("disabled", "disabled");
答案 2 :(得分:1)
如果用户没有启用javascript,那么当然这个答案是:这不是一个好主意。
仅使用禁用输入也是一个坏主意,恶意用户可以调整您的页面并轻松重新启用。
即使您确保在服务器端邮件中不接受您要禁用的字段,也表示一切正常。