Php atk4对话框URL关闭按钮

Php atk4对话框URL关闭按钮,php,user-interface,frameworks,atk4,Php,User Interface,Frameworks,Atk4,我正在使用按钮为false的atk dialogURL,我有一些字段并添加了我的按钮: $f2->addSubmit(); $f2->addButton('Close')->js('click',$f2->js()->univ()->closeDialog()); if($f->isSubmitted()){ $f->update(); } 按下“保存”按钮后,我的对话框不关闭(我不想要它),然后我单击我的关闭按钮对话框,但出现:

我正在使用按钮为false的atk dialogURL,我有一些字段并添加了我的按钮:

$f2->addSubmit();
$f2->addButton('Close')->js('click',$f2->js()->univ()->closeDialog());
if($f->isSubmitted()){
        $f->update();
}
按下“保存”按钮后,我的对话框不关闭(我不想要它),然后我单击我的关闭按钮对话框,但出现:

“'表单上的更改将丢失。是否继续?'”


为什么??我的数据正确保存在数据库中。似乎.form_changed未在isSubmitted内更新,您需要显式关闭对话框:

if($f->isSubmitted()){
    $f->update();
    $f->js()->univ()->closeDialog()->execute();
}
默认情况下,在销毁对话框之前,它会检查对话框是否已更改。它是通过向表单标记添加一个类(form_changed)来实现的。你几乎没有其他选择。例如,您可以完全删除表单:

if($f->isSubmitted()){
    $f->update();
    $f->js()->remove()->execute()
}
或:

$this->addButton('Close')->js('click',
    $form->js()->find('form')->removeClass('form_changed')
)->univ()->closeDialog();