Extjs 外部直接形式整合

Extjs 外部直接形式整合,extjs,Extjs,我正在使用Ext.direct.RemotingProvider。在服务器端,我进行了一些验证检查。响应以JSON格式发送回 如果在进行验证检查时发现任何错误,则字段success=false,并且错误将包含该错误 我试图弄清楚,如何在表单(客户端)中反映在服务器端发现的错误 在下面的链接中有一个我想要实现的例子。当客户端按“提交”时,表单中将出现错误消息,它是如何工作的 在我在底部发布的代码中,发生了以下情况: 浏览器中有两个字段(姓名、电子邮件)和两个按钮。 这些字段目前不相关。它们被用作

我正在使用Ext.direct.RemotingProvider。在服务器端,我进行了一些验证检查。响应以JSON格式发送回

如果在进行验证检查时发现任何错误,则字段success=false,并且错误将包含该错误

我试图弄清楚,如何在表单(客户端)中反映在服务器端发现的错误

在下面的链接中有一个我想要实现的例子。当客户端按“提交”时,表单中将出现错误消息,它是如何工作的

在我在底部发布的代码中,发生了以下情况: 浏览器中有两个字段(姓名、电子邮件)和两个按钮。 这些字段目前不相关。它们被用作假人

每次用户按下“添加”按钮时,都会向Ext.direct.RemotingProvider的callBuffer中添加一个新操作 当用户按下“应用”按钮时,所有操作都被发送到路由器(MVC模型)并从那里发送到特定的控制器。(将触发函数sfw.Direct.getProvider('sfwProvider').combineAndSend()

现在,我故意使响应失败,并创建一个错误字段,就像我在线程开头添加的示例链接一样。 我在错误字段{email=“已存在”}中输入了错误。 但我看不出形式上的效果

我做错了什么

代码:


在JSON响应中,您需要以下结构

{ "result" : { "success": false, "errors": { "name of field" : "validation message" } }
其中,
“字段名称”
是字段中的
名称
配置选项,
“验证消息”
是要向用户显示的消息

当您发送这样的响应时,ExtJS将处理其余的响应

编辑:您可能还需要启用快速提示:

Ext.QuickTips.init()

在声明表单之前添加该行

编辑2:另外,确保您正在使用
BasicForm
上的
submit()
方法:

    buttons:[{
        text: 'Submit',
        handler: function(){
            basicInfo.getForm().submit({
                params: {
                    foo: 'bar',
                    uid: 34
                }
            });
        }
    }],

hi Jaitsu,这就是我从服务器返回的内容,但对表单-->{“type”:“rpc”,“status”:true,“tid”:5,“result”:{“success”:false,“errors”:{“email”:“ready take”}}}没有影响。嗨,我添加了Ext.QuickTips.init();在开始时(创建formPanel之前),但仍然不工作。。。关于我可能遗漏的内容,还有什么想法吗?好的,通过查看示例,我认为您需要使用本机的
submit()
方法来提交表单数据,否则ExtJS将不会应用验证消息。。。我已经在我的回答中添加了代码好的,我添加了submit()方法。然后将数据发送到服务器。但是对表单仍然没有影响(我编辑了这篇文章),这意味着什么:“服务器端必须将提交处理程序标记为‘formHandler’?此注释来自api营房中的代码
    buttons:[{
        text: 'Submit',
        handler: function(){
            basicInfo.getForm().submit({
                params: {
                    foo: 'bar',
                    uid: 34
                }
            });
        }
    }],