2

Internet Explorer 10 で ASP .NET の RequiredFieldValidators を使用しています。問題があれば、ドキュメント モードは IE5 Quirks ですが、WebResource.adx のコントロールによって生成される JavaScript は古い IE10 です。次の行に沿って何かを使用して属性を取得しようとします

element.attribute

標準の代わりに

element.getAttribute(attributeName)

その結果、未定義の値が原因でコードが正常に実行されず、何があってもコントロールが true として検証されます。

問題は、ASP が IE10 が定義済みのブラウザー バージョンではないため、IE10 を検出できないことが原因である可能性があると思います。そして、あなたが何かを言う前に、はい、私はマイクロソフトの利用可能な修正プログラムを知っていますが、仕事の規則のために、私のマシンにそれをインストールすることはできません.

私の質問は次のとおりです: ie.browser 定義ファイルを更新すると、この問題は解決しますか? もしそうなら、ファイルにどのような変更を加える必要がありますか? (手動でファイルを変更していることに注意してください。)

asp.net が webuivalidation.js から webresource.axd を生成すること、および次の行が含まれていることを知っておくと役立つ場合があります。

Page_ValidationVer = 125;

それが最新版かどうかはわかりません。そうでない場合、どうすれば最新のものを入手できますか?

4

1 に答える 1

0

私自身の質問にも答えるかもしれません。

IE10 ができなかった理由は、ブラウザの定義ファイルとは何の関係もありません。代わりに、オプション xhtmlconformance = true が設定されている web.config ファイルで問題が発生しました。(asp.net 1.0 から 2.0+ に移行すると、自動的に true に設定されます) このオプションを使用すると、完全に最新のコードを生成しないという犠牲を払って、プロジェクトでレガシー コードを実行し続けることができます。その結果、IE10 では有効でなくなったバリデーター用のレガシ コードがプロジェクトで生成されました。これは、xhtmlconformance の値を false に変更するだけで修正できますが、プロジェクトが最新でない場合、プロジェクトが壊れる可能性があることに注意してください。

于 2013-12-28T01:52:12.260 に答える