🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

JavaScript

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

検索

検索は、あるデータの集まりの中から 目的のデータを見つけ出すことです。

Q&A

解決済

1回答

878閲覧

javascritpで同一のformから複数有るsubmitの一つをクリックして検索するサイトを作成したい

退会済みユーザー

退会済みユーザー

総合スコア0

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

JavaScript

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

検索

検索は、あるデータの集まりの中から 目的のデータを見つけ出すことです。

0グッド

0クリップ

投稿2021/03/19 14:49

前提・実現したいこと

ここに質問の内容を詳しく書いてください。
(例)PHP(CakePHP)で●●なシステムを作っています。
■■な機能を実装中に以下のエラーメッセージが発生しました。

javascriptで同一のformから複数有るsubmitから一つクリックして検索するサイトを作成中です。
いざ実行すると全hiddenのvalueが送信されてしまいます。

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

エラーメッセージ Uncaught SyntaxError: Unexpected token ')' Uncaught TypeError: document.getElementsByClassName(...).getElementsByTagName is not a function

コード

該当のソースコード

ソースコード <script type="text/javascript"> function search() { // 検索機能の要素取得 var fS = document.formS; var sC = document.formS.getElementsByClassName('submitC'); // ボタンの指定選択を取得 for (var i = 0; i < sC.length; i++) { if (sC[i].submitS.onClick) { // urlの要素取得 var h1v = sC[i].hidden1.value); // メソッド名の要素取得 var h2v = sC[i].hidden2.value); // テキスト名の要素取得 var h3v = sC[i].hidden3.value); // urlを取得 fS.action = h1v; // メソッド名を取得 fS.method = h2v; // テキスト名を取得 fS.querySelector('.textS').name = h3v; // 検索を実行 console.log(h1v,h2v,h3v); fS.submit(); return false(); } } } </script> <form id="formS" name="formS" action="#" method="#"> <div class="searchB"> <div class="textW"> <p><input type="text" name="textS" class="textS" value="" placeholder="検索文字を入力して下さい"></p> </div> </div>          <div id="search" class="pages"> <div class="submitC"> <p><input type="hidden" name="hidden1" value="http://www.google.co.jp/search"></p> <p><input type="hidden" name="hidden2" value="get"></p> <p><input type="hidden" name="hidden3" value="q"></p> <p><input type="submit" name="submitS" class="submitS" value="" onClick="search()"></p> <p id="imgs" class="img1"><a href="http://www.google.co.jp/" alt="google/search" title="google/search"></a></p> </div> <div class="submitC"> <p><input type="hidden" name="hidden1" value="http://search.yahoo.co.jp/search"></p> <p><input type="hidden" name="hidden2" value="get"></p> <p><input type="hidden" name="hidden3" value="p"></p> <p><input type="submit" name="submitS" class="submitS" value="" onClick="search()"></p> <p id="imgs" class="img2"><a href="http://www.yahoo.co.jp/" alt="yahoo!/search" title="yahoo!/search"></a></p> </div> <div> <p id="imgs" class="img3"><a href="http://www.goo.ne.jp/" alt="goo/search" title="goo/search"></a></p> </div> <div class="submitC"> <p><input type="hidden" name="hidden1" value="http://www.bing.com/search"></p> <p><input type="hidden" name="hidden2" value="get"></p> <p><input type="hidden" name="hidden3" value="q"></p> <p><input type="submit" name="submitS" class="submitS" value="" onClick="search()"></p> <p id="imgs" class="img4"><a href="http://www.msn.com/ja-jp" alt="msn/search" title="msn/search"></a></p> </div> <div class="submitC"> <p><input type="hidden" name="hidden1" value="http://www.bing.com/search"></p> <p><input type="hidden" name="hidden2" value="get"></p> <p><input type="hidden" name="hidden3" value="q"></p> <p><input type="submit" name="submitS" class="submitS" value="" onClick="search()"></p> <p id="imgs" class="img5"><a href="http://www.bing.com/" alt="bing/search" title="bing/search"></a></p> </div> <div class="submitC"> <p><input type="hidden" name="hidden1" value="http://search.nifty.com/websearch/search"></p> <p><input type="hidden" name="hidden2" value="get"></p> <p><input type="hidden" name="hidden3" value="q"></p> <p><input type="submit" name="submitS" class="submitS" value="" onClick="search()"></p> <p id="imgs" class="img6"><a href="http://www.nifty.com/" alt="nifty/search" title="nifty/search"></a></p> </div> <div class="submitC"> <p><input type="hidden" name="hidden1" value="http://websearch.rakuten.co.jp/WebIS"></p> <p><input type="hidden" name="hidden2" value="get"></p> <p><input type="hidden" name="hidden3" value="qt"></p> <p><input type="submit" name="submitS" class="submitS" value="" onClick="search()"></p> <p id="imgs" class="img7"><a href="http://www.infoseek.co.jp/" alt="infoseek/search" title="infoseek/search"></a></p> </div> <div class="submitC"> <p><input type="hidden" name="hidden1" value="http://cgi.search.biglobe.ne.jp/cgi-bin/search2-b"></p> <p><input type="hidden" name="hidden2" value="get"></p> <p><input type="hidden" name="hidden3" value="q"></p> <p><input type="submit" name="submitS" class="submitS" value="" onClick="search()"></p> <p id="imgs" class="img8"><a href="http://www.biglobe.ne.jp/" alt="biglobe/search" title="biglobe/search"></a></p> </div> <div class="submitC"> <p><input type="hidden" name="hidden1" value="http://websearch.excite.co.jp/"></p> <p><input type="hidden" name="hidden2" value="get"></p> <p><input type="hidden" name="hidden3" value="q"></p> <p><input type="submit" name="submitS" class="submitS" value="" onClick="search()"></p> <p id="imgs" class="img9"><a href="http://www.excite.co.jp/" alt="excite/search" title="excite/search"></a></p> </div> <div> <p id="imgs" class="img10"><a href="http://www.livedoor.com/" alt="livedoor/search" title="livedoor/search"></a></p> </div> <div> <p id="imgs" class="img11"><a href="http://www.fresheye.com/" alt="fresheye/search" title="fresheye/search"></a></p> </div> <div class="submitC"> <p><input type="hidden" name="hidden1" value="http://www.so-net.ne.jp/search/web/"></p> <p><input type="hidden" name="hidden2" value="get"></p> <p><input type="hidden" name="hidden3" value="query"></p> <p><input type="submit" name="submitS" class="submitS" value="" onClick="search()"></p> <p id="imgs" class="img12"><a href="http://www.so-net.ne.jp/" alt="so-net/search" title="so-net/search"></a></p> </div> <div> <p id="imgs" class="img13"><a href="http://www.ocn.ne.jp/" alt="ocn/search" title="ocn/search"></a></p> </div> <div> <p id="imgs" class="img14"><a href="http://www.ceek.jp/" alt="ceek/search" title="ceek/search"></a></p> </div> </div> ---以下も複数有り--- </form>

試したこと

ここに問題に対して試したことを記載してください。
<input type="submit" name="submitS" class="submitS" value="http://www.google.co.jp/search,get,q" onClick="search()">

<script type="text/javascript"> window.search = function () { // 検索機能の要素取得 var fS = document.formS; // 送信ボタンの指定選択を取得 var submitVal = fS.submitS.value.split(","); // urlを取得 fS.action = submitVal[0]; // メソッド名を取得 fS.method = submitVal[1]; // テキスト名を取得 fS.querySelector('.textS').name = submitVal[2]; // 検索を実行 console.log(submitVal); return false(); } </script>

上記の様にsubmitのvalueにurlとメソッド名とテキスト名を(,)分割して入れてjavascriptのsplitで分割して各自代入しました。しかしどうしても目的の検索先に移動しません。

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

ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答1

0

ベストアンサー

フォームのデータとして送信したくないものに <input type=hidden>を使うのはトラブルの元で、避けたほうが良いと思います。

formaction属性、formmethod属性を使って以下のようにできそうです。

html

1<script> 2function search(name) { 3 document.querySelector('.textS').name = name; 4} 5</script> 6... 7<p><input type="submit" class="submitS" value="" 8 formaction="http://www.google.co.jp/search" 9 formmethod="get" 10 onclick="search('q')"></p>

投稿2021/03/19 16:07

編集2021/03/19 23:28
int32_t

総合スコア21679

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

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

退会済みユーザー

退会済みユーザー

2021/03/20 12:54

有難う御座います!解決致しました!まさか、即回答して頂けるとは思いませんでした! hiddenを便利な格納要素かと思って居ました。 inputにform要素を格納出来るとは思いませんでした。 あれだけ苦労したコードが一文で完了してしまうとは…勉強に成りました。 本日は本当に有難う御座いました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問