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

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

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

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

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

Q&A

解決済

4回答

27772閲覧

input要素内でエンターを押したときにbutton要素のonClickと同じ処理を行いたい

退会済みユーザー

退会済みユーザー

総合スコア0

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

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

0グッド

0クリップ

投稿2016/10/01 10:25

html

1<html> 2 <body> 3 <h1>TEST</h1> 4 <form> 5 <input name="name" type="text" size="100" style="width: 100px"> 6 <button type="button" onclick="javascript:console.log(getElementsByName('name')[0].value);">test</button> 7 </form> 8 </body> 9</html> 10

buttonをクリックしたときはonClickが起動しconsole.logにnameの値が表示されます
同じ処理をinput内でエンターを押したときも行いたいのですがどのようにしたらよいのでしょうか
宜しくお願いします

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

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

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

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

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

guest

回答4

0

ベストアンサー

html

1<!DOCTYPE HTML> 2<html lang="ja"> 3 <head> 4 <meta charset="UTF-8"> 5 <title></title> 6 </head> 7 <body> 8 <form action="" method="post"> 9 <p> 10 <label for="sample">sample</label> 11 <input type="text" name="sample" id="sample" /> 12 </p> 13 <p> 14 <button type="submit">submit</button> 15 </p> 16 </form> 17 <script type="text/javascript"> 18 var forms = document.getElementsByTagName('form'); 19 var form = forms[0]; 20 form.addEventListener('submit', function (evt) { 21 alert('SUBMIT ボタンが押されました'); 22 evt.preventDefault(); 23 }); 24 </script> 25 </body> 26</html>

投稿2016/10/01 15:59

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

submitイベントを拾うほうが早い気がします。

HTML

1<form onsubmit="javascript:console.log(getElementsByName('name')[0].value); return false;"><!-- > return false; でフォームの送信をいったん止めてます < --> 2 <input name="name" type="text" size="100" style="width: 100px"> 3 <button type="submit">test</button><!-- > type="submit" に変更 < --> 4</form> 5```**動くサンプル:**[https://jsfiddle.net/whhkut81/](https://jsfiddle.net/whhkut81/) 6 7--- 8 9個人的にはjQueryで組んで、速度を気にする場所などで書き直すほうが楽でいいな、とか思います。(私はDOMの扱いが面倒になってjQueryに逃げた過去があります)

投稿2016/10/01 15:42

編集2016/10/01 15:44
kei344

総合スコア69407

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

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

0


解決策

html

1<html> 2 <head> 3 <!--<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>--> 4 </head> 5 <body> 6 <h1>TEST</h1> 7 <form> 8 <input name="inputName1" type="text" size="100" style="width: 100px"> 9 <button name="buttonName1" type="button">test</button> 10 </form> 11 </body> 12</html>

javascript

1 2素の方 3window.onload = function(){ 4 var input = document.getElementByName('name'); 5 var button = document.querySelectorAll('button [type="button"]'); 6 input.onKeyPress = function(){ 7 if(window.event.keyCode === "undefined" || window.event.keyCode === 13){ 8 window.event.preventDefault(); 9 triggerEvent(button, 'click'); 10 } 11 window.event.preventDefault(); 12 } 13 button.onclick = function(){ 14 console.log(getElementsByName('name')[0].value); 15 } 16} 17function triggerEvent(element, event) { 18 if (document.createEvent) { 19 var evt = document.createEvent("HTMLEvents"); 20 evt.initEvent(event, true, true ); 21 return element.dispatchEvent(evt); 22 } else { 23 var evt = document.createEventObject(); 24 return element.fireEvent("on"+event, evt) 25 } 26} 27 28// jQery 使用版 29/* 30$(function(){ 31 var input = $('form [name=inputName1]'); 32 var button = $('button [name=buttonName1]'); 33 input.on('keypress', function(e){ 34 if(e.keyCode === "undefined" || e.keyCode === 13){ 35 e.preventDefault(); 36 button.trigger('click'); 37 } 38 return false; 39 }); 40 button.on('click', function(){ 41 console.log(input.val()); 42 }); 43 44}) 45*/ 46

解説

のちほど書きます

投稿2016/10/01 12:48

編集2016/10/01 13:10
tama_yn0815

総合スコア143

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

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

tama_yn0815

2016/10/01 13:24

ごめん、イベントハンドラファンクション作る体力なかった... 誰かお願いしゃす!
guest

0

textでエンターしたらサブミットされるので
onclickするならreturn falseしたうえで
ボタンをおす処理をいれればいいでしょう

追記

一応追記しておきます

javascript

1document.addEventListener ('keydown',function(e){ 2 var t = e.target; 3 if(t.nodeName=="INPUT" && t.name=="name" && e.keyCode==13){ 4 t.form.getElementsByTagName("button")[0].click(); 5 e.preventDefault(); 6 } 7});

HTML

1<form> 2<input name="name" type="text" size="100" style="width: 100px"> 3<button type="button" onclick="javascript:console.log(getElementsByName('name')[0].value);">test</button> 4</form>

投稿2016/10/01 10:59

編集2016/10/03 04:14
yambejp

総合スコア114825

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

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

tama_yn0815

2016/10/01 12:31

jQuery(ライブラリ)を使用している前提では無いようですよ
退会済みユーザー

退会済みユーザー

2016/10/01 12:56

回答ありがとうございます 説明不足で申し訳有りません yuki_nishidaさんがおっしゃるとおりjQueryは使わずに書こうと思っています
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問