0

我想知道如何在 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 中更轻松/更智能地做到这一点??

4

1 回答 1

1

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

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

这会将事件绑定到#node-window并在那里侦听表单提交。然后,当表格被替换时,它就无关紧要了。

于 2012-11-05T11:05:39.693 回答