datepicker で struts2 フォームを使用します。
<s:form action="%{#parameters.myAction}" namespace="/" method="post" name="myForm" enctype="multipart/form-data" focusElement="dealTitleId" validate="true">
...
<sj:datepicker name="dealDisplayEnd" required="true" key="dealDisplayEnd-label" displayFormat="dd-mm-yy" readonly="true" minDate="0"/>
クライアント側の検証を有効にするオプションに注意してくださいvalidate="true"
(エラーが発生したときに、ファイルのアップロードに関する他の情報が失われるのを防ぐためにこれが必要です)。
次に、その XML も作成します。
<field name="dealDisplayEnd">
<field-validator type="required">
<message key="error.dealDisplayEnd.empty"/>
</field-validator>
</field>
エラーが 2 回繰り返されることを除いて、すべて正常に動作します。
Web ページのソースを見ると、検証スクリプトが 2 回生成されていることがわかります。
// field name: dealDisplayEnd
// validator name: required
if (form.elements['dealDisplayEnd']) {
field = form.elements['dealDisplayEnd'];
var error = "Deal display end date must be provided!";
if (field.value == "") {
addError(field, error);
errors = true;
}
}
// field name: dealDisplayEnd
// validator name: required
if (form.elements['dealDisplayEnd']) {
field = form.elements['dealDisplayEnd'];
var error = "Deal display end date must be provided!";
if (field.value == "") {
addError(field, error);
errors = true;
}
}
これは struts2 のバグですか? それとも私は何か間違ったことをしていますか?日付ピッカーとクライアント側の検証を使用しているためですか? 私は struts2-core-2.3.4.jar と struts2-jquery-plugin-3.3.3.jar を使用しています。パッチを適用する簡単な方法はありますか (これが生成された場所を見つけることができませんでした)?
ありがとう。