Wickets AjaxFormComponentUpdatingBehaviour
にこのような問題があります。フォームのいくつかのコンポーネントにこれを設定し、フォームにボタンを押した後に検証を追加すると、ajax
が異なる動作をした後、コンポーネントが検証をパスしなかったというエラーが表示されますモデルは更新されません。Wicketでフォームを送信した後のAjaxFormComponentUpdatingBehaviour問題
は、コード例です、changeableTxt
からcheckBx
、入力いくつかの値をチェックし、ボタンを提出し、空を押しsomeText
を残し、エラーが表示されますのであれば、そのフィールドsomeTextが必要です
TextField someText = new TextField("someTextId");
someText.setRequired(true); //added validation on requireness
CheckBox checkBx = new CheckBox("checkBxId");
TextField changeableTxt = new TextField("changeableTxtId");
changeableTxt.setEnabled(false);
checkBx.add(new AjaxFormComponentUpdatingBehaviour("onclick"){
protected void onUpdate(AjaxRequestTarget target) {
if(compoundModel.isCheckBx()){
changeableTxt.setEnabled(true);
target.addComponent(changeableTxt);
}else{
compoundModel.setChangeableTxt(null);
changeableTxt.setEnabled(false);
target.addComponent(changeableTxt);
}
}
});
Form form = new Form("form", compoundModel);
form.add(someText, checkBx, changeableTxt);
add(form);
。その後、checkBx
をクリックすると、changeableTxt
フィールドは無効になりますが、nullの代わりに入力値の前に残ります。
I'veはすべて、トルステンが、それは、表示される、私はチェックボックスをクリックしなかったが、私がもう一度それをクリックすると、それはテキストフィールドを無効にし、ヌルにしません。 – Gytis
私が家に帰るとすぐに確認します。私は完全なjavaとhtmlファイルを提供しますので、私たちはどこから離れているのか確認できます。 –
これは通常の作業ですが、私のフォームはクリックで変更されませんが、この問題を解決する方法は他にあります。私は新しいアイテムを作成し、それらにいくつかの価値を設定するので、それは古いコンポーネントではなく、サブミット後に更新されませんが、新しい新しいものです。 – Gytis