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

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

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

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

Q&A

解決済

3回答

508閲覧

HTMLからボタンを取得してクリックしたい

sera

総合スコア13

JavaScript

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

0グッド

0クリップ

投稿2017/12/27 06:30

編集2017/12/27 06:31

###実現したいこと

html

1<INPUT TYPE="SUBMIT" NAME="LOGIN" VALUE="ログイン">

を取得してクリックさせたいのですが,ボタンの情報を取得できません

###HTML
不要な部分は削除しています

html

1<FORM NAME="LOGIN" ACTION="#" METHOD="POST"TARGET="_parent"> 2 <TABLE BORDER="0" CELLSPACING="0" WIDTH="100%" CELLPADDING="1"> 3 <TR> 4 <TD VALIGN="TOP" ALIGN="RIGHT" NOWRAP> 5 <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" BGCOLOR="#990000"> 6 <TR> 7 <TD> 8 <TABLE BORDER="0" CELLSPACING="1" CELLPADDING="1" WIDTH="100%"> 9 <TR> 10 <TD ALIGN="RIGHT" BGCOLOR="#FFFFFF"> 11 <TABLE BORDER="0" CELLSPACING="0" CELLPADDING="0"> 12 <TR> 13 <TD VALIGN="BOTTOM"> 14 <INPUT TYPE="SUBMIT" NAME="LOGIN" VALUE="ログイン"> 15 </TD> 16 </TR> 17 </TABLE> 18 </TD> 19 </TR> 20 </TABLE> 21 </TD> 22 </TR> 23 </TABLE> 24 </TD> 25 </TR> 26 </TABLE> 27</FORM>

###試したこと

html

1document.getElementsByName('LOGIN');

と書いても取得できませんでした.テーブルから取得していく必要があるのでしょうか?

わかる方教えてください

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

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

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

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

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

guest

回答3

0

こうしてみてください

javascript

1window.addEventListener('DOMContentLoaded', function(e){ 2 document.querySelector('[name=LOGIN]').addEventListener('click',function(e){ 3 e.preventDefault(); 4 alert("submit!") 5 }); 6});

追記

ロード時にサブミットする

javascript

1 2window.addEventListener('DOMContentLoaded', function(e){ 3 document.querySelector('[name=LOGIN]').click(); 4}); 5

投稿2017/12/27 06:43

編集2017/12/27 07:14
yambejp

総合スコア114779

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

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

yambejp

2017/12/27 07:10

よくみるとクリックさせたいののですね。 クリックさせるためのトリガーはなんですか? クリックさせるためにクリックがトリガーってのも変な話ですね? ロード時で良いのでしょうか?
sera

2017/12/27 07:11

はい.ページを開いたと同時に押してほしいです.
yambejp

2017/12/27 07:14

追記しておきました
yambejp

2017/12/27 07:16

でも自分自身にsubmitしていると永久ループ仕様ですね?
sera

2017/12/27 07:24

ありがとうございます 申し訳ないんですが,ボタンは押されませんでした... 実行の仕方を間違っているのかもしれません
yambejp

2017/12/27 07:30

しつれいしました name=SUBMITがformにもついているんですね こうです。 document.querySelector('input[name=LOGIN]').click();
sera

2017/12/27 07:43 編集

ローカルで実行すると動きました.ありがとうございます でも,ブックマークレットだと上手くいきません そのままでは動かないんですか?
guest

0

ボタンのオブジェクトを取得してもあまり意味が無いかと…
コードでは「submitボタンをクリックする」のではなく
「フォームをsubmitする」ことになると思います。

javascript

1document.LOGIN.submit();

投稿2017/12/27 06:43

sousuke

総合スコア3828

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

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

sera

2017/12/27 06:56

回答ありがとうございます javascript:window.open("#", '_blank');document.LOGIN.submit(); というふうにブックマークレットにしてみましたが,上手くいきませんでした... あるサイトのログインフォームで入力を自動化しているので,ボタンも自動で押せたらなぁと思っています.ブックマークレットではできないのでしょうか?
sousuke

2017/12/27 07:29

突然ブックマークレットの話になりましたね。内容が結構違うので追記したほうがいいと思います。
guest

0

ベストアンサー

ブックマークレットを軽く調べましたがこんな感じではダメなんですかね?

javascript

1javascript:(function(d, i, v) {d[i]("LOGIN").submit();})(document, "getElementByName" ,"value");

訂正

javascript

1javascript:(function(d, i, v) {d[i]("LOGIN").item(0).submit();})(document, "getElementByName" ,"value");

投稿2017/12/27 07:33

編集2017/12/27 07:51
sousuke

総合スコア3828

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

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

sousuke

2017/12/27 07:48 編集

すみません、上気づいてませんでした。name="LOGIN"が2つあるんですね。 documant.getElementsByName(名前)でオブジェクトをとると複数返っていると思います。 document.getElementsByName('LOGIN').item(0)か document.getElementsByName('LOGIN').item(1)で取れると思います。
sera

2017/12/27 07:51

回答ありがとうございます オブジェクトの取得もクリックもローカルだとできるんですが,ブックマークレットにしてサイトで試すと上手く行かないんです ただブックマークレットにするだけではダメなんでしょうか?
sousuke

2017/12/27 08:20

適当なサイトでやってみましたがこれでできました。 <form name="email" action="email" method="POST">のタグ内に <input type="text" name="email">があります。 javascript:(function(d) {d.email.target="_blank";d.email.submit();})(document); 多分ですがfunctionで囲まないと複数文はできないのでは? sera氏は先程の文で javascript:window.open("#", '_blank');document.LOGIN.submit(); このように提示されていたので。
sera

2017/12/30 03:14

sousukeさんのおかげで解決しました ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問