2012-04-15 18 views
6

他の要素の状態に基づいて要素を「必須」に設定できるかどうかは疑問です。たとえば、ユーザーが特定のチェックボックスをチェックする場合にのみ、「必要」としたいinput要素があるとします。まず、JavaScriptを使用せずにこれを行うことは可能ですか?第2に、JavaScriptを使用する場合、ユーザーがそのチェックボックスをチェックすると、ルール/検証を設定できますが、デフォルトのブラウザ検証エラーに関する一貫性はどうでしょうか?チェックボックスをクリックすると、要素に「必須」属性を追加するのは「正しい」でしょうか?私はここに代替を見ません。これについてあなたの考えは何ですか?HTML5フォーム検証の条件ルール

答えて

3

私はあなたがjavascriptなしでこれを行うことはできないと思います。

javascriptを使用すると、これを簡単に行うことができます。

required属性は、チェックボックスをクリックした後に追加します。

実際、私はこれをtoggledにすると、ユーザーは入力をオフにして入力を要求できなくなります。

しかし、ブラウザのrequired属性の実装には依存しません。代わりに、私はいくつかのCSS(ハイライト、アニメーション、いくつかの単語を表示)を使用して自分の必要な通知を作成します。

+0

「しかし、私は必要な属性のブラウザの実装に依存しないだろう」 - 私は同意します!私はJavaScriptを使用すれば問題は解決できると思っていますが、JavaScriptが無効になっていると仮定すると、一部のフィールドではブラウザのデフォルトフォームの検証が行われますが、他のフィールドでは検証されません。私はこれを前もって言及しておかなかったのですが、私はHTMLに "novalidation"を付けています。これはJavaScriptで取り除かれます。つまり、JavaScriptがなければサーバー側の検証だけです。 – Jonas

0

あなたは時に利用できないネイティブの検証をエミュレートするためにpolyfillsを使用することがあります。
https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-Browser-Polyfills

+0

JS無効になっていると、いくつかのフィールドで検証され、他のフィールドでは検証されません。 – Jonas

+0

とにかく、サーバー側の検証が必要です。 JSを無効にすることができるという事実を受け入れなければなりません。この場合、ポリフィルは機能しません。しかし、それはユーザーエクスペリエンスだけを向上させることができます。 –

関連する問題