1

HTML5 を使用すると、入力に値を強制することが簡単になります。これは、.NET Web アプリケーションに最適です。これを簡単に実装したところ、興味深いことに気付きました。新しく必要になった入力フィールドは、送信ボタンのクリック時、およびブラウザーのフォーム入力機能を使用するフォーム コントロールからの入力時に適用されました。コントロールが __doPostback (最終的には form.submit() を呼び出します) を呼び出すと、新しく必要な入力が強制されません。

そうではありません!どうしたのFirefox!? しかし、それがChromeでの仕組みなので、どちらも間違っているか、どちらも間違っていないのは偶然です.

では、なぜそれが理にかなっているのか誰か教えてもらえますか? このきちんとした属性は、.NET Web アプリケーションでは決して使用できないようです。なぜなら、フォームを送信する唯一の他の方法は、ブラウザーがフォームを処理しないときに __doPostback を呼び出すことであり、必要な検証が時々しか行われないからです。しかし、ユーザーを別のページにナビゲートする前にフォームにポストバックするようにリンクが設定されている場合など、これは理にかなっています。

4

1 に答える 1

2

なぜこれが理にかなっているのかはわかりませんが、FF と Chrome はこの動作について正しいです。これを検証したい場合は、送信ボタンのクリックをトリガーする必要があります。

html5 の検証にはもう 1 つ奇妙な点があります。checkValidity メソッドはネイティブの検証 UI を呼び出しません (Opera では呼び出しますが、これは仕様違反です) が、無効なイベントをトリガーします。検証 UI を表示するためにプログラム API を使用することは本当に素晴らしいことですが、ユーザーがそれを確認できる唯一の方法は、インタラクティブな検証を使用することです。

于 2011-07-19T20:51:28.913 に答える