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

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

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

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

JavaScript

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

HTML

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

Q&A

解決済

3回答

1823閲覧

javascriptで選択肢のクリックを外した時の挙動

MitMc

総合スコア34

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

JavaScript

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

HTML

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

0グッド

0クリップ

投稿2018/12/16 22:36

複数の選択肢がある際に、あるボタンを選択した際に、特定のフィールドが入力可能にし、選択を外すと、入力不可となるようなプログラムを書いています。

選択した時の挙動は上手くいくのですが、「選択を外した時」というのをコードでどのように書いたら良いか分からないので、ご教授いただけますでしょうか。

自分のやったこと。

javascript

1 <script> 2 //初期設定 3 // 固定か変動による固定額の見え隠れ 4#初期状態でhiddenにしてお 5document.getElementById("id_fix_bet").style.visibility = "hidden"; 6 7document.getElementById("id_fix_or_variable_1").onclick = function(){ 8document.getElementById("id_fix_bet").style.visibility = "visible";} 9 </script> 10

その後、選択肢を外してもvisibleのままです。これを解除する方法がわかりません。

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

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

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

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

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

x_x

2018/12/18 06:34

ボタンというのはラジオボタンですか?
MitMc

2018/12/18 12:05

はい。ラジオボタンです。
guest

回答3

0

単純にボタン押下の度にvisibilityをトグルするだけでよいなら、記載いただいたonclickのfunction内で条件分岐すればよいのかと。

JavaScript

1 document.getElementById('id_fix_or_variable_1').onclick = function() { 2 if (document.getElementById('id_fix_bet').style.visibility === 'hidden') { 3 document.getElementById('id_fix_bet').style.visibility = 'visible'; 4 } else { 5 document.getElementById('id_fix_bet').style.visibility = 'hidden'; 6 } 7 }

ただ、visibilityだと表示/非表示が切り替わるので、入力可/不可を切り替えるのであれば、disabledの方がよいのでは?

投稿2018/12/16 22:52

aikon_marimo

総合スコア1083

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

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

MitMc

2018/12/17 10:02 編集

同じボタンを、クリックすると確かに上記のコード良いのですが、他の選択肢を選んで外すことで、id_fix_betをまた見えなくするというやり方を達成するにはどうしたら良いでしょうか? 他の選択肢が1つや2つであれば良いのですが、多くある場合に、「onclickではない状態の場合」というようにonlick自体を条件分岐したいのですが、方法がわかりません。
guest

0

チェックボックスで切り替えることになるのでしょうけどhtmlがないので
具体的に何がしたいかわかりません
たぶん今のままでは的外れだとは思いますが、これに近いことだと思います

javascript

1<style> 2[data-targetclass=hoge]{display:none;} 3[data-targetclass=hoge] + span{display:inline-block;border:3px outset;background-Color:#e0e0e0;padding:0px 3px;} 4[data-targetclass=hoge]:checked + span{border:3px inset;padding:0px 2px 0px 4px;} 5</style> 6<script> 7window.addEventListener('DOMContentLoaded', function(e){ 8 [].forEach.call(document.querySelectorAll('[data-targetclass]'),function(x){ 9 x.addEventListener('change',function(e){ 10 [].forEach.call(document.querySelectorAll('.'+x.dataset["targetclass"]),function(y){ 11 y.disabled=e.target.checked; 12 }); 13 }); 14 }); 15}); 16</script> 17<label><input type="checkbox" data-targetclass="hoge"><span>hoge</span></label> 18<form> 19<input type="text" class="hoge"><br> 20<input type="checkbox" class="hoge"><br> 21<input type="submit" value="send" class="hoge"><br> 22</form>

投稿2018/12/17 00:56

yambejp

総合スコア114843

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

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

kasa0

2018/12/17 01:28

「を選択した際に、特定のフィールドが入力可能」だから y.disabled=!e.target.checked; かな。
MitMc

2018/12/17 09:49

HTMLを推測していただき、お手数おかけしました。頂いたコードを参考にさせていただきます。 どうもありがとうございます。
guest

0

ベストアンサー

HTML

1 <form action="#"> 2 <div> 3 <label><input type="radio" name="hoge" value="dummy" />違うボタン</label> 4 <input type="radio" name="hoge" value="piyo" id="id_fix_or_variable_1" /><label for="id_fix_or_variable_1">あるボタン</label> 5 <input id="id_fix_bet" /> 6 </div> 7 </form>

JavaScript

1document.getElementById("id_fix_bet").style.visibility = "hidden"; 2document.forms[0].addEventListener('change', function(event) { 3 document.getElementById('id_fix_bet').style.visibility = event.currentTarget.elements['hoge'].value === 'piyo' ? 'visible' : 'hidden'; 4}, false);

並びによってはCSSのみでできます。

CSS

1#id_fix_bet { 2 visibility: hidden; 3} 4 5#id_fix_or_variable_1:checked ~ #id_fix_bet { 6 visibility: visible; 7}

投稿2018/12/19 04:58

x_x

総合スコア13749

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

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

MitMc

2018/12/20 22:29

addEventListener('change', function(event))を使うやり方で出来そうです。 vent.currentTarget.elements以降の文法を確認して、適用したいと思います。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問