[Wicket-ja-user 57] AjaxFormComponentUpdatingBehavior とPatternValidatorを同時に使用

Back to archive index

maeda aaake****@gmail*****
2008年 3月 31日 (月) 18:11:28 JST


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 メーリングリストの案内
Back to archive index