DOJO JavaScript ライブラリを Spring フレームワークに統合する際に問題が発生しています。具体的には、問題はテキストエリアとラジオボタンを検証する方法です。Spring-Js ライブラリを使用して標準の html フォーム要素を装飾しています。
<form:input path="actionDescription" id="actionDescriptionId"/>
<script type="text/javascript">
Spring.addDecoration(new Spring.ElementDecoration({
elementId : "actionDescriptionId",
widgetType : "dijit.form.SimpleTextarea",
widgetAttrs : { disabled : false,
required: true,
rows: "4",
cols: "60",
placeHolder: "Enter description of fault",
style: "width:auto;height:50px;"
}}));
</script>
私は FireFox で (Firebug を使用して) 開発してきましたが、(Dojo/Dijit のドキュメントを見て) dijit.form.SimpleTextArea が「必須」属性をサポートしていないことに気付きました。FireFoxですべて正常に機能したため、これを確認したことはありません。クリックするとすべての装飾された要素を検証するフォーム ボタンがあり、Firefox では、テキスト領域とラジオボタンを含むすべてのコンポーネントがポップアップし、フィールドが必要であることを示す見栄えの良いツールチップが表示されます。コード行は次のとおりです。
<script type="text/javascript">
Spring.addDecoration(
new Spring.ValidateAllDecoration({elementId:'proceed', event:'onclick'}));
</script>
これは、すべての必須フィールドが完了するまでフォームの送信を防ぐため、優れています。ラジオボタンには、ユーザーがオプションの 1 つを選択する必要があるというメッセージが表示され、テキスト領域には、ユーザーに何かを入力するように伝えるメッセージが表示されます。ただし、Safari や IE では機能しません。これらの他のブラウザーのテキスト領域とラジオボタンでは検証が機能しないため、サーバー側の検証を使用してユーザーをフォームにリダイレクトします。これは機能しますが、クライアント側とサーバー側のエラー メッセージを混在させるよりも、最初からフォームの送信を防ぎ、一貫したエラー レポートを作成することを好みます。
dijit textarea コンポーネントが 'required' 属性をサポートするはずがないのに、なぜそれが Firefox で機能するのか理解するのに本当に苦労していますか? spring-js を使用して基本的なコンポーネントを強化するというアイデアは気に入っていますが、数字のドキュメントによると、FireFox で検証を使用して digit.form.SimpleTextarea で要素を装飾する方法がよくわかりません。検証?
Spring-Js/Spring-DOJO 統合を使用する他の Spring 開発者がこの動作に遭遇したかどうか、またその仕組みをより深く理解しているかどうか疑問に思っていました。私が本当に望んでいるのは、IE を含むすべてのブラウザーでテキストエリアを検証することです。