【问题标题】:AJAX Form submission with CRUD使用 CRUD 提交 AJAX 表单
【发布时间】:2012-04-06 16:32:35
【问题描述】:

是否可以使用 ajax 验证 CRUD 表单字段而不在 web2py 中提交表单?

我浏览了 web2py 在线文档并看到了这个链接: http://web2py.com/books/default/chapter/29/11#Ajax-form-submission 所以我们可以使用自定义 html 来实现。 但我想用 CRUD 来做。

【问题讨论】:

    标签: python ajax model-view-controller web2py


    【解决方案1】:

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

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

    【讨论】:

    • 但我不想使用自定义 HTML 来完成它。**我想使用 CRUD 表单进行客户端验证**。甚至 SQLFORM 也可以。没有节省时间的客户端验证器可用吗?
    • 抱歉,您的问题不清楚。您说您想使用 Ajax(涉及服务器通信)进行验证,而不仅仅是在客户端(不涉及 Ajax)上进行验证。您指出的书中的示例也没有进行客户端验证。简短的回答是否定的,web2py 验证器不在客户端运行——所有验证器都只在服务器端运行。它所做的唯一客户端验证是针对整数、双精度和十进制字段。无论如何,出于安全原因,仅客户端验证不一定是个好主意——恶意用户仍然可以发布未经验证的数据。
    • 感谢您的回复。在 Asp.net 中,我们确实有客户端验证器,如自定义验证器、正则表达式验证器等。现在 web2py 没有它们,我希望它们可以合并到 web2py 的未来版本中。顺便说一句,我并不是说只有客户端验证器。
    • 是的,加入更多的客户端验证会很棒。
    猜你喜欢
    • 2013-05-19
    • 2012-11-16
    • 2017-02-04
    相关资源
    最近更新 更多