2012-04-06 119 views

回答

1

是的,您可以使用自定义HTML为Crud窗体,但默认情况下,Crud会在表单中插入隐藏的_formname_formkey字段(后者用于防止CSRF攻击)。因为Crud会期望这些字段被提交到表单中,所以必须通过Crud创建表单,并且必须将表单对象传递给视图,以便可以包含这些字段。有关为表单创建自定义HTML的详细信息,请参阅here

请注意,为了更容易通过Ajax提交表单,您可以考虑通过LOAD()(请参阅here)将表单放入Ajax组件中。

+0

但我不想用自定义的HTML来完成它**我想使用CRUD表单进行客户端验证**。甚至SQLFORM也可以。没有节省时间的客户端验证程序可用? – rahulserver 2012-04-07 10:00:33

+0

对不起,你的问题不清楚。您说过要使用Ajax(涉及服务器通信)进行验证,而不是仅在客户端(不涉及Ajax)上进行验证。您指出的书中的示例也不会进行客户端验证。简短的答案是否定的,web2py验证器不会在客户端运行 - 所有验证器仅在服务器端。它唯一的客户端验证是针对整数,双精度和十进制字段。无论如何,出于安全原因,仅客户端验证不一定是个好主意 - 恶意用户仍然可以发布未经验证的数据。 – Anthony 2012-04-07 16:14:48

+0

感谢您的回复。在Asp.net中,我们确实有客户端验证器,如自定义验证器,正则表达式验证器等。现在web2py没有它们,我希望它们可以合并到未来版本的web2py中。顺便说一句,我不是仅仅意味着客户端验证器。 – rahulserver 2012-04-08 05:25:16