我在Yii上的iframe中显示了一个jQuery对话框弹出窗体。如果表单验证,则需要保存并关闭,否则需要显示错误。但是,当validateOnChange工作时,validateOnSubmit没有 - 单击submit只返回视图的输出,而不是错误(或空数组)。我不确定从哪里开始修复它。
我在beginWidget()
电话中有以下选项:
'enableAjaxValidation'=>true,
'clientOptions' => array(
'validateOnSubmit'=>true,
'validateOnChange'=>true,
'validateOnType'=>false,
),
我正在使用此代码生成按钮:
CHtml::ajaxSubmitButton('Submit', 'enter', array('success' => 'afterValidate()'));
我发现其他一些链接正在讨论这两个选项在Yii ajaxSubmitButton() with fields validation和{}不合作的问题 http://code.google.com/p/yii/issues/detail?id=2008。但是,我不知道如何处理上一个链接中建议的修复:
function afterValidate(form, data, hasError){
if (!hasError) {
$.ajax({
url: '{$postUrl}',
type: 'POST',
dataType: 'json',
data:jQuery(this).parents("form").serialize()
})
.done(function ( response ) {
// my successhandler
})
.fail(function ( xhr, status ) {
// my error handler
});
return false;
}
}
正在调用回调函数,但无论数据是否有效,总是会失败。
那么,如何在Yii中实现jQuery对话框?