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

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

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

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

HTML

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

Q&A

解決済

2回答

1166閲覧

javascriptのsplitでradioのvalueを分割してactionとtextのnameを指定しょうとして居ますが、textのnameだけが指定出来ません。

退会済みユーザー

退会済みユーザー

総合スコア0

JavaScript

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

HTML

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

0グッド

0クリップ

投稿2016/05/26 15:34

編集2016/06/03 15:04

###前提・実現したいこと
formのactionとtextnameをradioで指定して検索する検索サイトを作成して居ます。
###発生している問題・エラーメッセージ
actionとtextnameをradioのvalueをJavaScriptのsplitで分割して取得するも検索結果が出ません。原因はtextのnameが指定出来ない様です。
###該当のソースコード

**JavaScript** <script type="text/javascript"> window.search = function () { var fS = document.formS; var radioVal = fS.radioB.value.split(","); fS.action = radioVal[0]; fS.textS.name = radioVal[1]; console.log(radioVal); return false; } </script>
**HTML** <body> <form id="formS" name="formS" action="#" method="get">検索窓 <input class="textS" type="text" name="" value=""> <input class="submit" type="submit" value="検索" onClick="search()"> <input class="button" type="reset" value="削除"> <div class="main"> <div class="menu"> <ul> <li class="se"> <a href="JavaScript:onClick=display('search');" alt="search" title="search"></a> </li> <ul id="search" name="se1" style="display:none;"> <li class="img1"> <input type="radio" name="radioB" value="http://www.google.co.jp/search,q" checked="checked"> <a href="http://www.google.co.jp/" alt="google/search" title="google/search"> </a> </li> <li class="img2"> <input type="radio" name="radioB" value="http://search.yahoo.co.jp/search,p"> <a href="http://www.yahoo.co.jp/" alt="yahoo!/search" title="yahoo!/search"> </a> </li> <li class="img3"> <input type="radio" name="radioB" value="http://www.goo.ne.jp/"> <a href="http://www.goo.ne.jp/" alt="goo/search" title="goo/search"> </a> </li> <li class="img4"> <input type="radio" name="radioB" value="http://jp.msn.com/"> <a href="http://jp.msn.com/" alt="msn/search" title="msn/search"> </a> </li> <li class="img5"> <input type="radio" name="radioB" value="http://www.bing.com/"> <a href="http://www.bing.com/" alt="bing/search" title="bing/search"> </a> </li> <li class="img6"> <input type="radio" name="radioB" value="http://www.nifty.com/"> <a href="http://www.nifty.com/" alt="nifty/search" title="nifty/search"> </a> </li> <li class="img7"> <input type="radio" name="radioB" value="http://www.infoseek.co.jp/"> <a href="http://www.infoseek.co.jp/" alt="infoseek/search" title="infoseek/search"> </a> </li> <li class="img8"> <input type="radio" name="radioB" value="http://www.biglobe.ne.jp/"> <a href="http://www.biglobe.ne.jp/" alt="biglobe/search" title="biglobe/search"> </a> </li> <li class="img9"> <input type="radio" name="radioB" value="http://www.excite.co.jp/"> <a href="http://www.excite.co.jp/" alt="excite/search" title="excite/search"> </a> </li> <li class="img10"> <input type="radio" name="radioB" value="http://www.livedoor.com/"> <a href="http://www.livedoor.com/" alt="livedoor/search" title="livedoor/search"> </a> </li> <li class="img11"> <input type="radio" name="radioB" value="http://www.fresheye.com/"> <a href="http://www.fresheye.com/" alt="fresheye/search" title="fresheye/search"> </a> </li> <li class="img12"> <input type="radio" name="radioB" value="http://www.so-net.ne.jp/"> <a href="http://www.so-net.ne.jp/" alt="so-net/search" title="so-net/search"> </a> </li> <li class="img13"> <input type="radio" name="radioB" value="http://www.ocn.ne.jp/"> <a href="http://www.ocn.ne.jp/" alt="ocn/search" title="ocn/search"> </a> </li> <li class="img14"> <input type="radio" id="r1" name="radioB" value="http://www.ceek.jp/"> <a href="http://www.ceek.jp/" alt="ceek/search" title="ceek/search"> </a> </li> </ul> </ul> ------------------------------以下同リストが6項目続く---------------------------- </div> </div> </form> </body>

###試したこと###
google chromeのデベロッパー・ツールでデバッグしてみました。
search 関数の先頭にブレイクポイントを仕掛けてステップ実行して見た所、「fS.textS.name = radioVal[1];」ここが原因と分かりました。
補足情報(言語/FW/ツール等のバージョンなど)

より詳細な情報

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

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

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

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

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

guest

回答2

0

まず大前提としてradiovalueの値は1つしか設定できません。
現在htmlコードはhttp://www.google.co.jp/search,qという文字列が値として設定されている状態です。

ここから推測
おそらく参考にされたサイトではradioの値を,で結合して設定することでJavaScriptで受け取った後に分割して2つに分けるということだったのではないかと思います。
その場合は

javascript

1var radioVal = fS.radioB.value.split(",");

とすることで
radioVal[0]http://www.google.co.jp/searchradioVal[1]qが入りますのであとはこれを使ってあげれば大丈夫かと思います。

またfS.getElementByClassName(textS).name = fS.radioB.value;の行ですがfS.getElementByClassName(textS)では<intpu name="textS">を示せていませんのでfS.textSでいいかと思います。

javascript

1var fS = document.formS; 2var radioVal = fS.radioB.value.split(","); 3fS.action = radioVal[0]; 4fS.textS.name = radioVal[1];

最終的にはこんな感じでしょうか。

また質問の内容とは関係ありませんが

html

1<ul class="main"> 2 <ul class="menu"> 3 <ul>

の部分<ul>の子要素に<ul>は設定できません(<li>のみ)ので外側のuldivに変えるなりされたほうがよいかと思います。

投稿2016/05/26 17:38

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

退会済みユーザー

退会済みユーザー

2016/05/28 15:24

前回に引き続き御回答有難う御座います。 >おそらく参考にされたサイトではradioの値を,で結合して設定することでJavaScriptで受け取った後に分割して2つに分けるということだったのではないかと思います。 そうです、説明不足で済みません。 調べた先の回答で「取得してsplitで分割すれば良い」と有りましたが、その後が分からず質問させて頂きました。 ところで改善して見ましたがtextboxに検索文字を入力しても検索結果が表示されません。 目標はactionにradioのvalue前半に記載した検索先urlが、textnameに後半の検索エンジン等が設定したtextnameが、textのvalueにtextboxに入力される検索文字が入り検索結果が表示される筈なのですが... そちらでは検索結果が表示されましたか? 又、console.log(fS.radioB.value);fS.submit();return false;この部位はどう対処すれば良いでしょうか?宜しくお願いします。 >また質問の内容とは関係ありませんが 御指摘頂きまして誠に有難う御座います。修正致します。
guest

0

ベストアンサー

JavaScript
<script type="text/javascript">
window.search = function () {
var fS = document.formS;
var radioVal = fS.radioB.value.split(",");
fS.action = radioVal[0];
fS.querySelector('.textS').name = radioVal[1];
console.log(radioVal);
return false;
}
</script>
InternetExplorer11含む場合
<script type="text/javascript">
function search() {
var fS = document.formS;
for (var i = 0; i < fS.radioB.length; i++) {
if(fS.radioB[i].checked) {
var radioVal = fS.radioB[i].value.split(",");
fS.action = radioVal[0];
fS.querySelector('.textS').name = radioVal[1];
console.log(radioVal[0],radioVal[1]);
fS.submit();
return false();
}
}
}
</script>

投稿2016/06/04 15:13

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問