name='' の無効なフォームコントロールはフォーカスできません 質問する

name='' の無効なフォームコントロールはフォーカスできません 質問する

Google Chrome では、一部の顧客が支払いページに進むことができません。フォームを送信しようとすると、次のエラーが表示されます:

name='' の無効なフォーム コントロールはフォーカスできません。

これは JavaScript コンソールからのものです。

問題は、隠しフィールドに必須属性があることが原因かもしれないと読みました。問題は、HTML5 の必須属性ではなく、.net Web フォームの必須フィールド検証を使用していることです。

このエラーが発生する人はランダムのようです。これに対する解決策を知っている人はいますか?

ベストアンサー1

この問題は、フォーム フィールドの検証に失敗した場合、Chrome で発生しますが、それぞれの無効なコントロールがフォーカス可能ではないため、その横に「このフィールドに入力してください」というメッセージを表示しようとするブラウザーの試みも失敗します。

検証がトリガーされた時点でフォーム コントロールにフォーカスできない理由はいくつかあります。次に説明する 2 つのシナリオが最も顕著な原因です。

  • フィールドは、ビジネス ロジックの現在のコンテキストでは無関係です。このようなシナリオでは、それぞれのコントロールを無効にするか、DOM から削除するか、requiredその時点で属性でマークしないようにする必要があります。

  • ユーザーが入力時にENTERキーを押すと、検証が早期に実行される場合があります。または、フォーム内のボタン/入力コントロールをクリックしたときtypeに、コントロールの属性が正しく定義されていない可能性があります。ボタンの type 属性が に設定されていない場合button、Chrome (または他のブラウザ) は、ボタンがクリックされるたびに検証を実行します。これはsubmit、 がボタンの属性のデフォルト値であるためですtype

この問題を解決するには、ページ上に送信リセット以外の操作を実行するボタンがある場合は、必ず次の操作を実行してください<button type="button">

おすすめ記事