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

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

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

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

Q&A

解決済

1回答

1061閲覧

入力フォームにフォーカスを当てる

paruru

総合スコア12

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

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

0グッド

0クリップ

投稿2019/10/10 04:06

編集2019/10/10 04:33

初心者です。用語等あまりわからず、かなりわかりづらいと思いますが、読んでいただければ幸いです。
絵文字を使ったパスワードを2つ、DBに登録するwebシステムを作っています。
2つの入力フォームに、ボタンを押して絵文字を登録していくという方法です。
下記のようにした場合、a2の入力フォームにしか絵文字が入らず悩んでいます。
アドバイスいただきたいです。

絵文字のボタンを押した段階で、ボタンにフォーカスが当たってしまうからだと考えますが、解決策がわかりません。
また、ソースコードを省いているところがあるので、場合によっては載せようと思います。
よろしくお願いします。

該当のソースコード

javascript

1$(function(){ 2var buttons = document.getElementsByTagName('button'); 3for ( var i = 0; i < buttons.length; i ++ ) { 4buttons[i].onclick = function() { 5var keyword = document.getElementById('a1'); 6if ( keyword.value.length > 0 ) { 7keyword.value += ''; 8} 9keyword.value += this.value; 10} 11} 12}); 13 14$(function(){ 15var buttons = document.getElementsByTagName('button'); 16for ( var i = 0; i < buttons.length; i ++ ) { 17buttons[i].onclick = function() { 18var keyword = document.getElementById('a2'); 19if ( keyword.value.length > 0 ) { 20keyword.value += ''; 21} 22keyword.value += this.value; 23} 24} 25});

該当のソースコード

html

1<input name="password" class="formtext" id="a1" accesskey="I" style="border-radius:5px;font-size: 150%; 2cursor: auto; background-color: rgb(204, 204, 255);" 3cols="45" wrap="hard" autocomplete="off" placeholder="絵文字入力"required> 4 5<input name="password2" class="formtext" id="a2" accesskey="I" style="border-radius:5px;font-size: 150%; 6cursor: auto; background-color: rgb(204, 204, 255);" 7 cols="45" wrap="hard" autocomplete="off" placeholder="絵文字入力"required> 8 9$iconlist = array( 10 '<button type="button" value="&#x1f4aa;" class="square_btn">&#x1f4aa;</button>', 11 '<button type="button" value="&#x1f347;" class="square_btn">&#x1f347;</button>', 12 '<button type="button" value="&#x26bd;" class="square_btn">&#x26bd;</button>', 13 '<button type="button" value="&#x1F3B6;" class="square_btn">&#x1F3B6;</button>', 14 '<button type="button" value="&#x1f3ae;" class="square_btn">&#x1f3ae;</button>', 15 '<button type="button" value="&#x1F340;" class="square_btn">&#x1F340;</button>', 16 '<button type="button" value="&#x1F35F;" class="square_btn">&#x1F35F;</button>', 17 '<button type="button" value="&#x1F319;" class="square_btn">&#x1F319;</button>', 18 '<button type="button" value="&#x1F35E;" class="square_btn">&#x1F35E;</button>', 19 '<button type="button" value="&#x1f3a4;" class="square_btn">&#x1f3a4;</button>', 20 ); 21shuffle($iconlist); 22

該当のソースコード

form

1<form> 2 {foreach from=$iconlist item=iconvalue name=icon} 3 {if $smarty.foreach.icon.index == 3} 4 <br> 5 {/if} 6 {if $smarty.foreach.icon.index == 6} 7 <br> 8 {/if} 9 {if $smarty.foreach.icon.index == 9} 10 <br> 11 {/if} 12 {$iconvalue} 13 {/foreach} 14</form>

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

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

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

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

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

yambejp

2019/10/10 04:10

肝心のボタンに関するHTMLの記載が抜けてます
paruru

2019/10/10 04:24

ご指摘ありがとうございます。追加しました。
guest

回答1

0

ベストアンサー

buttons[i].onclick に2回代入しているので、後に書かれている方に上書きされてしまっています。

a1, a2どちらか最後にカーソルがあったものに入力させる、という方法が簡単でいいと思います。

JavaScript

1var target; 2 3$(function(){ 4 // a1からカーソルが外れた時にtargetを更新 5 document.getElementById('a1').onblur = function () { 6 target = this; 7 }; 8 // a2からカーソルが外れた時にtargetを更新 9 document.getElementById('a2').onblur = function () { 10 target = this; 11 }; 12 13 var buttons = document.getElementsByTagName('button'); 14 for ( var i = 0; i < buttons.length; i ++ ) { 15 buttons[i].onclick = function() { 16 // a1,a2どちらにもカーソルが当たっていなかった場合はa1に入力させる 17 if (target == undefined) { 18 target = document.getElementById('a1'); 19 } 20 if ( target.value.length > 0 ) { 21 target.value += ''; 22 } 23 target.value += this.value; 24 } 25 } 26});

投稿2019/10/10 05:36

guissy-k

総合スコア245

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

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

paruru

2019/10/10 13:58

うまくできました。本当にありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問