2

ボタンがfalseのatkdialogURLを使用しています。いくつかのフィールドがあり、ボタンを追加しました。

$f2->addSubmit();
$f2->addButton('Close')->js('click',$f2->js()->univ()->closeDialog());
if($f->isSubmitted()){
        $f->update();
}

[保存]ボタンを押した後、ダイアログが閉じません(必要ありません)。次に、閉じるボタンのダイアログをクリックしますが、表示されます。

「『フォームの変更は失われます。続行しますか?』」

なぜ?私のデータはデータベースに正しく保存されています。.form_changedが更新されていないようです

4

1 に答える 1

1

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();
于 2011-12-01T20:13:38.377 に答える