2

我在另一个没有得到任何答案的论坛上发现了这个问题。我认为这是一个值得在这里问的好问题。我在这里逐字粘贴。

嗨,伙计们,我有一个天上掉馅饼的想法,我只是想知道它是否有可能实现,或者我是否应该放弃并尝试其他方法。

我有一堆 Zend_Dojo_Form 表单,在 Zend 端有一堆自定义验证器 - 它们工作正常,当值不正确时表单会出错,这一切都完全按照你的预期工作,但是,我也会like 是让相同的验证器在表单的 Dojo 客户端上工作——但不必完全重新实现它们,一个验证器一个验证器。

我知道,在最简单的层面上,Dojo isValid 方法不知道也不关心它背后的应用程序,事实上,它甚至能够访问应用程序中的错误,它必须尝试提交,这不是它的本意,但有没有人尝试过类似的系统:

  1. 覆盖表单 onSubmit 以添加我们的代码
  2. 测试 Dojo isValid()
  3. 如果 Dojo 方满意,AJAX 提交表单
  4. 如果成功,将返回我不知道如何,然后转发到相应的页面
  5. 如果不成功,那么(我猜这就是它变得棘手的地方)传回足够的数据以了解错误的字段,错误是什么,然后调用足够的 Dojo isValid 内部胆量以使表单看起来像它没有不验证?

很抱歉只是在宣扬这样的想法,我只是想如果我们能想出一种方法来将自定义验证器全局添加到我们的表单中,客户端和服务器端都可以使用,而不必在双方。

4

2 回答 2

3

嗯,道场:(

使用 Jquery :)

看看这个,太棒了: Ajaxify Your Zend_Form Validation with jQuery

我们将采用最后 3 个视频中的内容,现在包括一些将异步显示的服务器端验证。这是通过 JSON 使用 Zend_Form 作为验证工具的示例。

于 2011-01-28T08:18:18.493 回答
1

Zend_Form 有一个processAjax()方法可用于验证任何或所有表单元素并返回 JSON 编码的结果(true,或错误列表)。

所以这可用于在 onsubmit 事件处理程序中预先验证全部或部分表单;甚至在其 onchange 事件处理程序中单独预先验证字段。

于 2011-01-27T10:27:07.913 回答