在PHP条件下禁用整个表单的最佳方法?

时间:2010-11-30 16:16:15

标签: jquery html webforms

我有一个网站(很多)。我想显示但是根据他们是否登录来禁用特定表单。我显示用户是否登录的方式是通过PHP设置的cookie。我想知道的是在用户未登录时禁用表单中所有元素的最佳方法。

我目前的解决方案是让PHP到echo一些JavaScript(确切地说是jQuery)到页面:

$("#form_name").children("input, textarea").attr("disabled", "disabled");

这是正确的方法,还是有更好的方式做事?

3 个答案:

答案 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,那么当然这个答案是:这不是一个好主意。

仅使用禁用输入也是一个坏主意,恶意用户可以调整您的页面并轻松重新启用。

即使您确保在服务器端邮件中不接受您要禁用的字段,也表示一切正常。