Wicket 1.4.17 で、HTML5 の input で追加された type 属性、number , url , tel を試そうと
したが、type="number" で、TextField<Integer> をそのままあてはめても、
org.apache.wicket.Component.checkComponentTagAttribute で
エラーが起きてしまうので、onComponentTag をオーバーライドしてチェックをやめても、
入力値の渡しは、AJAX ではうまくいかない。
たどりついたのが、、、package org.apache.wicket.ajax に存在する wicket-ajax.js の
461行目~471行の以下の部分。。
Wicket 1.5 では、この部分は修正されてる。
// this function intentionally ignores image and submit inputs
Wicket.Form.serializeInput = function(input) {
var type = input.type.toLowerCase();
if ((type == "checkbox" || type == "radio") && input.checked) {
return Wicket.Form.encode(input.name) + "=" +
Wicket.Form.encode(input.value) + "&";
} else if (type == "text" || type == "password" || type == "hidden" ||
type == "textarea" || type == "search") {
return Wicket.Form.encode(input.name) + "=" +
Wicket.Form.encode(input.value) + "&";
} else {
return "";
}
}
これを参照定義してるのが、WicketAjaxReference
Wicket 1.4.17 では、、、この代わりを用意すればいいのか?今度、試そうと思う
Wicket 1.5 なら、、、
type="number" は、NumberTextField
type="email" は、EmailTextField
type="url" は、UrlTextField
type="search" は、TextArea<String>
を使えば、バリデータを任意に定義しなくても自動でやってくれる
type="tel" はどうしたらよいか解らず、TextField<String> を
無理やり使用してみた。