yuichi tanaka
u1tnk****@gmail*****
2008年 3月 31日 (月) 23:13:40 JST
u1です。 私もハマったことありますが、正常にValidationにひっかかってるんだけど、AjaxRequestTarget にFeedBackPanelをaddしていない為、エラーメッセージを表示できていないだけだと思います。 これもよくやりましたが、setOutputMarkupId(true)を忘れずに! 08/03/31 に maeda<aaake****@gmail*****> さんは書きました: > maedaです。 > > 度々質問してしまった申し訳ないのですが・・・。 > > TextFieldに対して以下のことを同時に行い対のですが > > ・AjaxFormComponentUpdatingBehaviorを使用しonblur時に入力された文字の変換 > ・PatternValidatorを使用しての入力チェック > > 両方ともTextFieldにaddするとAjaxFormComponentUpdatingBehaviorのonUpdateメソッドが > PatternValidatorで設定したパターンの時の値か空の時しか呼出されなくなってしまいます。 > > 以下ソースです。 > public Test28() { > > test28form = new Test28form(); > > Form form = new Form("form",new CompoundPropertyModel(test28form)); > this.add(form); > > form.add(new FeedbackPanel("feedback")); > > final TextField textField = new TextField("text03"); > textField.setOutputMarkupId(true); > > form.add(textField); > > AjaxFormComponentUpdatingBehavior ajaxFormComponentUpdatingBehavior = new AjaxFormComponentUpdatingBehavior("onblur"){ > @Override > protected void onUpdate(AjaxRequestTarget arg0) { > String buf = textField.getValue(); > > //変換処理、省略・・・。 > > setModelObject(buf); > arg0.addComponent(textField); > } > }; > > //AjaxFormComponentUpdatingBehaviorをadd > textField.add(ajaxFormComponentUpdatingBehavior); > //PatternValidatorをadd > textField.add(new PatternValidator("[0-9]{3}/{1}[0-9]{3}")); > } > > 今回のソースですと > PatternValidatorで3桁数値/3桁数値以外をエラーにするとしているので > AjaxFormComponentUpdatingBehaviorのonUpdateメソッドが3桁数値/3桁数値を入力した時と > 空の時にロストフォーカス時しか呼出されません。 > 単純にaddしただけだとダメなのでしょうか? > > WICKET AJAX DEBUGのログでは呼出される時もダメな時も同じログが流れていました。 > > _______________________________________________ > Wicket-ja-user mailing list > Wicke****@lists***** > http://lists.sourceforge.jp/mailman/listinfo/wicket-ja-user >