Yii ajax验证并通过接收输入。AJAX

Yii ajax验证并通过接收输入。AJAX,yii,Yii,我想知道如何在Yii中做到这一点 我有一个表格,我希望能够在提交时验证。如果表单存在验证错误,则应显示常规表单摘要,但如果表单验证,我希望从控制器接收一些数据,将其注入页面,然后重置表单 到目前为止,我已经想出了这个代码 $('#node-window form').submit(function(){ var $form = $(this); $.ajax({ type : 'POST', url : $form.attr('action'),

我想知道如何在Yii中做到这一点

我有一个表格,我希望能够在提交时验证。如果表单存在验证错误,则应显示常规表单摘要,但如果表单验证,我希望从控制器接收一些数据,将其注入页面,然后重置表单

到目前为止,我已经想出了这个代码

$('#node-window form').submit(function(){
    var $form = $(this);
    $.ajax({
        type : 'POST',
        url : $form.attr('action'),
        data : $form.serialize(),
        dataType : 'json',
        success : function(data) {
            if(data.status=='error') {
                // Renders the validation summary
                $('#node-window').html(data.form);
            } else {
                // No errors, so inject the data.

            }
        }
    });
    return false;
});
这实际上是可行的,但是如果表单有错误,就会显示错误摘要,并且在第二次按下“提交”按钮时,“提交”事件自然不会被截获


在Yii中必须有更简单/更智能的方法来实现这一点???

在Yii中可能有更好的方法来实现这一点,但实际上您可以相当快地解决这一问题。只要您使用的是最新版本的jQuery,请将顶行更改为:

$('#node-window').on('submit', 'form', function(){

这将把事件绑定到
#节点窗口
,并在那里侦听表单提交。那么,当表单被替换时,它就无关紧要了。

谢谢。非常简单的解决方案,我喜欢:)。当我必须用另一个表单替换表单时,这会更容易。是的,我想在Yii中可能会有一些默认的方法来实现这一点。是的,Yii中有ajax表单提交选项,您可以将它们的挂钩添加到其他东西中。但根据我的经验,对于这样一个小功能,自己做起来更容易。