Joomlaで両方のタイプの検証を見て混乱しました。これまでのところ、これらの2つの私の理解は以下の通りです
クライアント側の検証
クライアントブラウザのjQuery/Javascriptを介して行われる
サーバー側の検証
ページが送信された後にサーバーで行われます
サーバー側の検証が単純な必須フィールドの例でどのように機能するかを理解しようとしています。
以下のXMLフォームフィールド
<field name="note_name"
type="text"
label="Note Name"
required="true" />
Default.phpには以下のコードがあります
//JHtml::_('behavior.formvalidation');
<form .... class="form-vertical" ...>
echo $this->form->renderField('note_name');
<button type="submit" class="btn btn-primary">Save</button>
上記のコードには、クライアント側の検証コードを含めておらず、ページが送信され、サーバーが検証を行うと考えていました。しかし、ページは送信されず、単に「このフィールドを入力してください」と尋ねるフィールドの近くにニースポップアップが表示されます。
ここで何が欠けていますか?クライアント側の検証コードを含めていないのに、クライアントの検証がトリガーされるのはなぜですか?
required
属性が入力フィールドに設定されているため、ブラウザーによる自動検証です。これをサポートするブラウザのリストを次に示します。 http://caniuse.com/#feat=form-validation