たとえば、「0000000」を に入力する<intbox>
と、一部のデフォルト バリデータが「0000000 ではなく整数を指定する必要があります」というエラー ツールチップを表示します。そのメッセージを完全に取り除き、入力の値を「0」に変更したいだけです。どんな助けでも素晴らしいでしょう...
1442 次
2 に答える
1
org.zkoss.zul.Intbox#coerceFromString
カスタム サブクラス(この例で使用されている名前) でオーバーライドしIntboxCustomSubclass
、カスタム コンポーネントとしてアプリケーションに追加lang.xml
できます。カスタム コンポーネントについては、http://books.zkoss.org/wiki/ZK_Client-side_Reference/Language_Definitionを参照してください。
<component>
<component-name>intbox</component-name>
<component-class>org.zkoss.zul.IntboxCustomSubclass</component-class>
<widget-class>zul.inp.Intbox</widget-class>
<mold>
<mold-name>default</mold-name>
<mold-uri>mold/input.js</mold-uri>
<css-uri>css/input.css.dsp</css-uri>
</mold>
<mold>
<mold-name>rounded</mold-name>
<mold-uri>mold/input.js</mold-uri>
<css-uri>css/input.css.dsp</css-uri>
</mold>
</component>
「0000000」のような値を持つ文字列のテストをここに置き、0 を返します。
// here.
try {
int v = Integer.parseInt(val);
int divscale = vals[1] != null ? ((Integer)vals[1]).intValue(): 0;
while (v != 0 && --divscale >= 0)
v /= 10;
return new Integer(v);
} catch (NumberFormatException ex) {
throw showCustomError(
new WrongValueException(this, MZul.NUMBER_REQUIRED, value));
}
于 2012-05-16T09:30:02.897 に答える
0
ウィジェットのデフォルトshowError_
メソッドをオーバーライドすることで解決策を見つけました。エラーメッセージが作成される場所です...今は次のようになっています
zk.$package("foo").MyIntbox = zk.$extends(zul.inp.Intbox, {
$init: function() {
this.$super('$init', arguments);
// some custom logic
},
showError_ : function(msg){
console.log(msg);
}
});
于 2012-05-18T12:55:27.287 に答える