1

私は、フォームの検証などに ajax 呼び出しを使用するアプリケーションを構築しています。問題は、これらの検証エラーが css のない新しいページに表示され、javascript なしでフォームが完全にリセットされたときに気に入らないことです。

私はダースのフォームについて話しているので、ユーザーがフォームを何度も何度も通過するのは非常に面倒です.

このトピックに関するいくつかの回答を読みましたが、このような状況のベストプラクティスである特定の方法はありますか (フォーム検証の行に沿って)?

すでに回答がある場合は申し訳ありません。

編集:

すべての検証はサーバー側で行われ、現在、エラーは ajax の助けを借りて表示されています。私が望むのは、フォームの処理中にエラーが発生した場合に、JavaScript を使用せずにフォームを再作成してエラーを表示するための便利な方法です。

4

4 に答える 4

4

サーバーで検証していないことを質問で暗示しているかどうかはわかりません.Javascriptを無効にするだけでフォームがバイパスされる可能性があるため、これは巨大なセキュリティホールと見なされます. 毎回サーバーで検証する必要がありますが、クライアント側の検証は簡単に行うことができます。

さらに、適切なフレームワークを使用すると、ページがリロードされたときにフォームがリセットされるという「問題」は意味がなくなります-Pythonでは、Djangoはエラーの場合にフォームを自動再入力します。PHP では、CakePHP と CodeIgniter も同様です。フレームワークが抽象化するはずの「一般的なタスク」のカテゴリに分類されるため、ほとんどの優れたフレームワークはこれを行うと確信しています。

フレームワークを使用していないときはいつでも、必要を満たす独自の小さな Form クラスを作成します。

編集

フォームを再作成できるようにするために必要なものにプラグインできるものは何も知りません。最善の策は、独自の小さなクラスを作成することです。これには 1 時間もかかりません。

于 2009-06-16T18:25:48.327 に答える
1

私が通常行うことは、すべてのエラー文字列をセッション変数の配列に格納することです (私は PHP を使用します)。サーバー側でエラーが発生した場合は、ユーザーをフォーム ページにリダイレクトし、セッション変数を確認して、必要に応じてエラーを表示します。セッション変数を設定解除して、表示後にメモリを解放してください。フォームの再入力についても同じことが言えます -- セッション変数の値。

于 2009-07-14T20:55:19.657 に答える
0

フォームの検証は、最初にサーバーで記述し、後でクライアントで記述する必要があります。いずれにせよ、サーバー上で検証する必要があります。フォームの検証のように、単純でサイトの運用にとって重要なことを Ajax に依存しないでください。目立たないスクリプトを使用すると、デフォルトのフォーム送信を防止し、Ajax を使用してフォームを処理できます。それ以外の場合は、送信を許可し、サーバー生成の検証ページで応答します。

于 2009-06-16T18:25:02.137 に答える
0

サーバー側で検証を実行し、フォームを再入力します。

AJAX による検証は便利ですが、強制することはできません。したがって、AJAX が発生するかどうかに関係なく検証を実行する方が効果的です。JavaScript を使用している場合は、検証を処理し、JSON でエラーの配列を返すことができる 2 番目のルートをお勧めします。ただし、JavaScript を使用しない場合、検証が機能する唯一の方法はサーバー側を使用することです。

残念ながら、これで実際に選択することはできません。中途半端なプログラマーや firebug を持つハッカーなら、JavaScript を編集したり、フックを切り離したり、あなたがやろうとしていることをすべて回避することができます。

于 2009-06-16T18:27:59.477 に答える