質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

1回答

4975閲覧

<!DOCTYPE html>で起こり得る不具合について解決したい

ginia3150

総合スコア2

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2021/06/13 09:39

前提・実現したいこと

deviseを使ってuser管理をし、ログイン等を行えるようにしたい

発生している問題・エラーメッセージ

deviseを使用してuser管理する流れでログイン画面とサインイン画面のviewを作成し反映できたのですが、代わりに登録ボタンやログインボタンをクリックしても反応しなくなってしまいました。

エラー文?だと思う記述です。
Autofocus processing was blocked because a document already has a focused element.

該当のソースコード

app/views/devise/registrations/new.html.erb

<section class="hero" id='account-page'> <%= form_with model: @user, url: user_registration_path, local: true do |f|%> <form class="login-form"> <p class="login-text"> <span class="fa-stack fa-lg"> <i class="fa fa-circle fa-stack-2x"></i> <i class="fa fa-lock fa-stack-1x"></i> </span> </p> <%= f.text_field :n_name, autofocus: true, class: "login-username", placeholder: "ニックネーム" %> <%= f.email_field :email, class: "login-username", placeholder: "メールアドレス" %> <%= f.password_field :password, autocomplete: "off", class: "login-username", placeholder: "パスワード(半角英数6文字以上)" %> <%= f.password_field :password_confirmation, autocomplete: "off", class: "login-username", placeholder: "パスワード(確認用)" %> <%= f.number_field :height, autofocus: true, class: "login-username", placeholder: "身長" %> <%= f.number_field :weight, autofocus: true, class: "login-username", placeholder: "体重" %> </form> <%= f.collection_select(:age_id, Age.all, :id, :name, {}, {class:"login-username", id:"user-age"}) %> <div class="btn"> <%= f.submit "新規登録", class: "login-submit" %> </div> <div class="underlay-photo"></div> <div class="underlay-black"></div> <% end %> </section>

app/views/devise/sessions/new.html.erb

<section class="hero"> <%= form_with model: @user, url: user_session_path, local: true do |f|%> <form class="login-form"> <p class="login-text"> <span class="fa-stack fa-lg"> <i class="fa fa-circle fa-stack-2x"></i> <i class="fa fa-lock fa-stack-1x"></i> </span> </p> <%= f.email_field :email, class: "login-username", placeholder: "メールアドレス" %> <%= f.password_field :password, autocomplete: "off", class: "login-username", placeholder: "パスワード(半角英数6文字以上)" %> </form> <div class="btn"> <%= f.submit "ログイン", class: "login-submit" %> </div> <div class="underlay-photo"></div> <div class="underlay-black"></div> <% end %> </section>

試したこと

該当箇所が<!DOCTYPE html>ということで今までに見たことがない箇所の問題でした。
エラー文を直接調べたり、翻訳して意味を調べてみました。
直訳
ドキュメントにすでにフォーカスされた要素があるため、オートフォーカス処理はブロックされました。
という意味でした。
すでにフォーカスされたという記述から別の何かが先に習得されて使えなかったという意味かな?と仮説建しています。
しかしながらどこを触れば解決するか解決することができませんでした。

補足情報(FW/ツールのバージョンなど)

バージョンは
Rails 6.0.3.7 です。
ご助力よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

runnynose

2021/06/13 14:38

すみません、私はRails触ったことないので恐縮なのですが、HTMLの問題なら協力できると思い投稿させていただきます。 >deviseを使用してuser管理する流れでログイン画面とサインイン画面のviewを作成し反映できたのですが、代わりに登録ボタンやログインボタンをクリックしても反応しなくなってしまいました。 > >エラー文?だと思う記述です。 >Autofocus processing was blocked because a document already has a focused element. 不明な点があるのでご質問にお答えいただけますでしょうか? 1. deviseを使用して これはPCなりスマホなりからブラウザでと解釈して良いですか? 2. 代わりに 何と取って変わったのかわかりませんでした。 3. エラー文?だと思う記述です。 これはどこに出た内容ですか?ブラウザのコンソール?
ginia3150

2021/06/13 15:01

質問ありがとうございます。 1.への返答 ローカルホスト上で起動ですのでブラウザになります。 2.への返答 元のログインできた画面という意味でした。 下記に機能していたときのコードを記述させていただきます。 3.への返答 おっしゃる通りブラウザの検証コンソールでの表示になります。 ### app/views/devise/registrations/new.html.erb <div class='account-page' id='account-page'> <div class='account-page__inner clearfix'> <div class='account-page__inner--left account-page__header'> <h2>Create Account</h2> <h5>新規アカウントの作成</h5> </div> <div class='account-page__inner--right user-form'> <%= form_with model: @user, url: user_registration_path, local: true do |f|%> <%= devise_error_messages!%> <div class='field'> <div class='field-label'> <%= 'ニックネーム'%> </div> <div class='field-input'> <%= f.text_field :n_name, autofocus: true%> </div> </div> <div class='field'> <div class='field-label'> <%= 'メールアドレス'%> </div> <div class='field-input'> <%= f.email_field :email%> </div> </div> <div class='field'> <div class='field-label'> <%= 'パスワード'%> <i>(英数字6文字以上)</i> </div> <div class='field-input'> <%= f.password_field :password, autocomplete: "off"%> </div> </div> <div class='field'> <div class='field-label'> <%= 'パスワード'%> <i>(確認用)</i> </div> <div class='field-input'> <%= f.password_field :password_confirmation, autocomplete: "off"%> </div> </div> <div class='field'> <div class='field-label'> <%= '身長'%> <i>(半角数字)</i> </div> <div class='field-input'> <%= f.number_field :height, autofocus: true%> </div> </div> <div class='field'> <div class='field-label'> <%= '体重'%> <i>(半角数字)</i> </div> <div class='field-input'> <%= f.number_field :weight, autofocus: true%> </div> </div> <div class='field'> <div class='field-label'> <%= '年齢層'%> </div> <%= f.collection_select(:age_id, Age.all, :id, :name, {}, {class:"select-box", id:"user-age"}) %> <div class='actions'> <%= f.submit "登録", class: 'btn'%> </div> </div> <% end %> </div> </div> ### app/views/devise/sessions/new.html.erb <div class='account-page' id='account-page'> <div class='account-page__inner clearfix'> <div class='account-page__inner--left account-page__header'> <h2>Log in</h2> <h5>登録しているユーザーでログイン</h5> </div> <div class='account-page__inner--right user-form'> <%= form_with model: @user, url: user_session_path, local: true do |f|%> <div class='field'> <div class='field-label'> <%= 'メールアドレス'%> </div> <div class='field-input'> <%= f.email_field :email, autofocus: true%> </div> <div class='field'> <div class='field-label'> <%= 'パスワード'%> <i>(英数字6文字以上)</i> </div> <div class='field-input'> <%= f.password_field :password, autocomplete: "off"%> </div> <%= render "devise/shared/links"%> </div> <div class='actions'> <%= f.submit "ログイン", class: 'btn'%> </div> </div> <% end %> </div> </div> </div>
runnynose

2021/06/13 15:31

ご回答ありがとうございます。 >3.への返答 >おっしゃる通りブラウザの検証コンソールでの表示になります。 HTMLの問題であると確信しました。 HTMLで起こっている問題のようなので、RailsのソースコードよりもRailsがHTMLに展開されたソースコードを記載した方が、回答者が数倍に増えると思います。もし、お手間出なければ対応していただけると助かります(>人<) ソースは画面をブラウザ表示後Ctrl+Uを押すことで出すことができます。
ginia3150

2021/06/13 15:48

丁寧に返答いただきありがとうございます。 如何せん素人すぎて詳しく教えていただいてもよろしいですか? >ソースは画面をブラウザ表示後Ctrl+Uを押すことで出すことができます。 ローカルホストで起動して実行すると良いのでしょうか? 試しに自分のローカルホストを起動し実行しましたが特に反応がなかったように感じました。 >RailsのソースコードよりもRailsがHTMLに展開されたソースコードを記載 コンソールのElements展開のことを指しているのでしょうか? 知識が浅く申し訳ありません。
runnynose

2021/06/13 17:37

>ローカルホストで起動して実行すると良いのでしょうか? >試しに自分のローカルホストを起動し実行しましたが特に反応がなかったように感じました。 説明足りずにすみません。Chromeを前提に話していました。 ブラウザで対象画面を表示後にブラウザ画面上で右クリックをし「ページのソースを表示」を押すことで、レスポンス時のHTMLを表示させることができるかと思います。 >コンソールのElements展開のことを指しているのでしょうか? 今回の事象に関してはこちらのHTMLでも大丈夫だと思います。 「ページのソースを表示」のときのHTMLと「コンソールのElements」のときのHTMLの違いとしては、Javascript処理前か後かの違いになります。
ginia3150

2021/06/14 01:28

丁寧に返答いただきありがとうございます。 説明不足ではなく自分の勉強不足ですので。 下記にそのページのコードを記述します。 ###. <!DOCTYPE html> <html> <head> <title>Pfcnew</title> <meta name="csrf-param" content="authenticity_token" /> <meta name="csrf-token" content="bmfIGBhqZq43Cl2wcUD329F6gBHjrgEY76ml4kZz6MRsK/ZV/XvdNIzjbFNj4tKbeGB5d82PL3LqzZGXZGJIZQ==" /> <link href="//fonts.googleapis.com/earlyaccess/notosansjapanese.css" rel="stylesheet" /> <link rel="stylesheet" media="all" href="/assets/destyle.self-715f9a61a71493a47efeb233414e32208af70a5b756e42f971a486bb5bba7194.css?body=1" data-turbolinks-track="reload" /> <link rel="stylesheet" media="all" href="/assets/header.self-582924babc8a1a88d933f7082415808806f0885434efa3b048fe17a879a09231.css?body=1" data-turbolinks-track="reload" /> <link rel="stylesheet" media="all" href="/assets/index.self-e3e2cd897f42ba0a4fa58cb0cca68f4040f36194afd915ebe49ded7cc1228165.css?body=1" data-turbolinks-track="reload" /> <link rel="stylesheet" media="all" href="/assets/totals.self-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.css?body=1" data-turbolinks-track="reload" /> <link rel="stylesheet" media="all" href="/assets/user.self-9633d7eb747e5c3ae18163564478f1383f5fc267f73309d398fc8254ba821bf5.css?body=1" data-turbolinks-track="reload" /> <link rel="stylesheet" media="all" href="/assets/application.self-f0d704deea029cf000697e2c0181ec173a1b474645466ed843eb5ee7bb215794.css?body=1" data-turbolinks-track="reload" /> <script src="/packs/js/application-dac0d44edf57d9930bb2.js" data-turbolinks-track="reload"></script> </head> <body> <section class="hero"> <form action="/users" accept-charset="UTF-8" method="post"><input type="hidden" name="authenticity_token" value="Y5p8iWwkJhFhKgDI5GJibqKtRjhpmAZW28FFw1pZ3y4Et44E0NTqLV7Zo1cIbKdGCcHjvZXw3b6Lo0Rd2frpJA==" /> <form class="login-form"> <p class="login-text"> <span class="fa-stack fa-lg"> <i class="fa fa-circle fa-stack-2x"></i> <i class="fa fa-lock fa-stack-1x"></i> </span> </p> <input autofocus="autofocus" class="login-username" placeholder="ニックネーム" type="text" name="user[n_name]" id="user_n_name" /> <input class="login-username" placeholder="メールアドレス" type="email" value="" name="user[email]" id="user_email" /> <input autocomplete="off" class="login-username" placeholder="パスワード(半角英数6文字以上)" type="password" name="user[password]" id="user_password" /> <input autocomplete="off" class="login-username" placeholder="パスワード(確認用)" type="password" name="user[password_confirmation]" id="user_password_confirmation" /> <input autofocus="autofocus" class="login-username" placeholder="身長" type="number" name="user[height]" id="user_height" /> <input autofocus="autofocus" class="login-username" placeholder="体重" type="number" name="user[weight]" id="user_weight" /> </form> <select class="login-username" id="user-age" name="user[age_id]"><option value="1">年齢層を選択</option> <option value="2">18~29歳</option> <option value="3">30~49歳</option> <option value="4">50~64歳</option> <option value="5">65~74歳</option> <option value="6">75歳以上</option></select> <div class="btn"> <input type="submit" name="commit" value="新規登録" class="login-submit" data-disable-with="新規登録" /> </div> <div class="underlay-photo"></div> <div class="underlay-black"></div> </form></section> </body> </html>
guest

回答1

0

自己解決

rubyでの記述位置の問題でした。
ですので自分で解決いたしました。
関わっていただいた方々に感謝を

投稿2021/06/14 03:14

ginia3150

総合スコア2

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問