ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Wicketコミュの入力チェック

  • mixiチェック
  • このエントリーをはてなブックマークに追加
Wicketの入力チェックで、謎なことがある。
複数ボタンがあった場合に、1つ目のボタンでは入力チェックを行い、
2つ目のボタンは入力チェックを行わないという場合。

TextArea<String> textarea = new TextArea<String>("message", new PropertyModel<String>(this, "inputMessage"));
textarea.setRequired(true);

例えば、こんなtextareaに必須チェックを入れるとする、すごく簡単に実装できるのだが、これだとどのボタンを押された時も入力チェックが走ってしまう。
Validatorを実装しても。

折角の便利な方法なのに、これを生かして何とかやれないものだろうか。

誰か教えてちょ・・・。

コメント(4)

返信ありがとうございます。

まさか答えてくれる人が居るとは思いませんでしたw
こんな誰も居ないコミュニティーにw

>1つ目のボタンはtextarea.setRequired(true)が効いた状態、
>2つ目のボタンはtextarea.setRequired(true)が効いていない状態
まさにその通りです。

例えば、1つ目のボタンは送信処理で、2つ目のボタンは戻る処理のような場合です。

出来そうですか?
返信遅くなりました。
またまた、ありがとうございます(゚∀゚)

setDefaultFormProcessingは使ったことは無かったですが、cancelボタンを作るには良い機能ですね。

例えがよくなかったですね。
自分の知りたかったのは、Commons Validatorのような使い方が出来れば楽だなと思いました。
setDefaultFormProcessingは入力チェックが発生しないが、モデルにも値がセットされないので、自分の考えてたこととは違います。

例えば、ボタンAとボタンBがあります。
TextFieldAとTextFieldBがあります。
ボタンAが押された時は、TextFieldAの必須チェックのみ。
ボタンBが押された時は、TextFieldAとTextFieldBの必須チェックを行うという、
ボタンによって入力チェックを変えるようにするイメージです。

Wicketの考え方だと、TextFieldはFormの所有物で、FormはPageの所有物というようにaddしていきます。
Commons Validatorならボタンによって読み込むxmlを変えればよいだけです。
だから、楽勝で実装できますが、Wicketだとそうもいきません。

でも、Wicketの下記のようにValidatorを追加していく考え方は自分は結構好きです。
TextArea<String> textarea = new TextArea<String>("message", new PropertyModel<String>(this, "inputMessage"));
textarea.setRequired(true);
textarea.add(StringValidator.lengthBetween(0, 300));
textarea.add(new NGWordValidator());

TextAreaにaddするValidatorにボタン名の配列を渡して、場合によって分けれれば良いのになーと、素人的に思ってしまいました(;^ω^)

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

Wicket 更新情報

Wicketのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング