1

オブジェクトの日付プロパティにテキスト フィールドを使用しています。そのフィールド用のjquery-ui datepickerがあります。問題は次のとおりです。

そのフィールドで日付を選択すると、AjaxFormComponentUpdatingBehavior の onUpdate メソッド内でその値を取得しようとしています。問題は、選択した値を初めて取得していることです。ただし、ユーザーがテキストフィールドを消去すると、null 値が取得されません。したがって、値にはまだ古い選択値が含まれているため、今回は null に設定する必要があります。フィールドが消去されると、onUpdate メソッドは起動されません。フィールドがクリーンアップされてもフィールドのモデルは変更されないと思います。そのため、onUpdate メソッドが起動されません。null 値を取得するにはどうすればよいですか?

    surveyRandevuDatePicker = new TextField<String>("surveyRandevuDatePicker", new PropertyModel<String>(itemModel, "surveyRandevuDisplay"));

    surveyRandevuDatePicker.add(new AjaxFormComponentUpdatingBehavior("onkeydown") {
        private static final long serialVersionUID = 8745814248540998760L;

        @Override
        protected void onUpdate(AjaxRequestTarget target) {
            surveyRandevuSelectedValue = surveyRandevuDatePicker.getModelObject();
        }
    });
4

1 に答える 1

1

OnChangeAjaxBehaviorAjaxFormComponentUpdatingBehavior使用する代わりに

OnChangeAjaxBeahviorのサブクラスですAjaxFormComponentUpdatingBehavior。コンポーネント内のすべての変更を追跡するOnChangeAjaxBeahviorために forと it's の子孫を使用します。TextFieldクロスブラウザーで動作し、カット アンド ペーストや通常の編集 (onkeyup、onkeydown) などのコンポーネントでエール変更をサポートします。次に、コンストラクターで選択した1つのAjaxFormComponentUpdatingBehaviorイベントを追跡したいときに、使用したように文字列を渡すことで使用できます"onkeydown"

AjaxFormComponentUpdatingBehaviorイベントでよく利用しonblurます。

于 2013-01-27T10:34:49.340 に答える