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

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

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

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

Q&A

解決済

3回答

1985閲覧

javascriptでvalueを変化させる方法

退会済みユーザー

退会済みユーザー

総合スコア0

JavaScript

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

0グッド

0クリップ

投稿2018/02/27 10:42

編集2018/02/27 11:06

###■目的
ラジオボタンを選択→別のラジオボタンのvalueが連動

という機能を作りたいです。

下記にまとめておきました。
https://jsfiddle.net/duxg7b4f/2/

上記のコードはこちらです。

html

1<p>【連動ボックス】</p> 2<input id='abc' type=radio value='ここを連動させたい'> 3 4<p>【選択ボックス】</p> 5<div class="select-a"> 6<input type="radio" name="slider" value="a1">a1 7<input type="radio" name="slider" value="a2">a2 8<input type="radio" name="slider" value="a3">a3 9</div> 10 11<div class="select-b"> 12<input type="radio" name="slider" value="b1">b1 13<input type="radio" name="slider" value="b2">b2 14</div>

javascriptでvalueを変化させる。だなんて、できるでしょうか?

お詳しい方、よろしくお願いいたします。m(_ _)m

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

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

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

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

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

guest

回答3

0

こうでしょうかね?

js

1addEventListener("load",function(){ 2 var target = document.getElementById("abc"); 3 document.getElementsByName("slider").forEach((e) => { 4 e.addEventListener("change",function(){ 5 target.value = this.value; 6 },false); 7 }); 8},false);

jsFiddle

投稿2018/02/27 11:37

編集2018/02/27 12:15
namnium1125

総合スコア2043

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

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

退会済みユーザー

退会済みユーザー

2018/02/27 11:44

こんばんは★ありがとうございます。 …んっと、【連動ボックス】のラジオボタンのvalueを連動させたいのですけれど、そちらのjsを書いても、何も連動しない様子でした。(>_<) また何か思いつくことがあれば、なんでもおっしゃってくださいませ。
namnium1125

2018/02/27 12:25 編集

addEventListener("load",... でロードイベントを設定しているのですが多分それが原因になっているのかもしれません。(というか少しはコードの意味を考えながら組み込んで欲しいです…) ここが初心者のネックになるところですから。 確認してみてください。m(_ _)m またjsFiddleのサンプルも付けましたので合わせてどうぞ。
退会済みユーザー

退会済みユーザー

2018/02/27 12:40

>というか少しはコードの意味を考えながら組み込んで欲しいです… まったくおっしゃるとおりです!!笑 サンプル、ほんとですね、できてますものね。誠にありがとうございますm(_ _)m
guest

0

こんな感じです

CSS

1#abc[value="a1"]+span::before{content:"a1";} 2#abc[value="a2"]+span::before{content:"a2";} 3#abc[value="a3"]+span::before{content:"a3";} 4#abc[value="b1"]+span::before{content:"b1";} 5#abc[value="b2"]+span::before{content:"b2";}

javascript

1document.addEventListener('change',function(e){ 2 var t=e.target; 3 if(t.name=="slider"){ 4 document.querySelector('#abc').value=t.value; 5 } 6});

HTML

1<p>【連動ボックス】</p> 2<input id='abc' type='radio' value='ここを連動させたい'> 3<span></span> 4 5<p>【選択ボックス】</p> 6<div class="select-a"> 7<input type="radio" name="slider" value="a1">a1 8<input type="radio" name="slider" value="a2">a2 9<input type="radio" name="slider" value="a3">a3 10</div> 11 12<div class="select-b"> 13<input type="radio" name="slider" value="b1">b1 14<input type="radio" name="slider" value="b2">b2 15</div>

投稿2018/02/27 11:40

yambejp

総合スコア114814

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

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

退会済みユーザー

退会済みユーザー

2018/02/28 08:52 編集

こんばんは。 大変失礼いたしました!今別の方のコメントを拝見し、こちらのご回答に気づきました。ごめんなさい。 実は a1 a2 a3 b1 b2 などはwordpressの記事ごとに c1 c2 c3 … などなど、と大量にあるので、CSSでそれらをすべて書いていくのはちょっと億劫かもしれません。 今回は別の方をベストアンサーにさせていただきました。 ご回答まことにありがとうございます。
yambejp

2018/02/28 09:05

> CSSでそれらをすべて書いていくのはちょっと億劫 説明が足りなくてすみません radioのvalueを変えただけでは見た目がかわらないので valueが変わってますよとCSSで補足しているだけです CSSを書かなくても例示のjavascriptでご希望の機能は充足していると思います
退会済みユーザー

退会済みユーザー

2018/02/28 09:12

なるほど。ほんとですね。さすがのお気遣い、痛みいりまする。
guest

0

ベストアンサー

JavaScript

1// [name="slider"] 全てに "change"イベントを付与 2document.querySelectorAll('[name="slider"]').forEach(function(element) { 3 element.addEventListener("change", function() { 4 // #abcのvalueを変更後のラジオボタンの値に変更 5 document.getElementById("abc").value = this.value; 6 }, false); 7});

投稿2018/02/27 11:36

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

退会済みユーザー

退会済みユーザー

2018/02/27 11:45

おおおお!できました!完璧でございます。どうもありがとうございます!!
退会済みユーザー

退会済みユーザー

2018/02/27 12:52 編集

夜分にすみませんっ!(>_<) 連動させるタイミングなのですけれど、 ラジオボタンを選択したタイミングではなく、 「ボタン」をクリックしたタイミングで連動させるためには、どうすればいいか、ご教示いただけませんでしょうか? https://jsfiddle.net/duxg7b4f/20/
退会済みユーザー

退会済みユーザー

2018/02/27 12:51

// [name="slider"] 全てに "change"イベントを付与 document.querySelectorAll('[name="slider"]').forEach(function(element) { $(".btn").click(function(){ element.addEventListener("change", function() { // #abcのvalueを変更後のラジオボタンの値に変更 document.getElementsByClassName("abc")[0].value = this.value; }, false); }) }); などでは、できませんでした。。
退会済みユーザー

退会済みユーザー

2018/02/27 13:05

「ボタンをクリックすると#abcの値を選択中のラジオボタンの値に変更する」と捉えてお答えすると $(".btn").click(function(){  var checked = document.querySelector('[name="slider"]:checked');  document.getElementsByClassName("abc")[0] = checked.value; }); インデントに全角の空白を入れているので除去してください。 やり方は色々あるので試してみてください。
退会済みユーザー

退会済みユーザー

2018/02/27 20:59 編集

全角を削除したみたのですけれど、んっと、、 <script> $(".btn").click(function(){ var checked = document.querySelector('[name="slider"]:checked'); document.getElementsByClassName("abc")[0] = checked.value; }); </script> ということですよね? うーん、連動してくれない様子です。。 https://jsfiddle.net/duxg7b4f/33/ お手すきの折にまたご意見頂戴できましたら幸いです。m(_ _)m
退会済みユーザー

退会済みユーザー

2018/02/28 03:16

失礼しました。valueに入れてあげてください - document.getElementsByClassName("abc")[0] = checked.value; + document.getElementsByClassName("abc")[0].value = checked.value;
退会済みユーザー

退会済みユーザー

2018/02/28 08:49

できました!どうもありがとうございます。とても助かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問