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

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

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

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

HTML

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

Q&A

解決済

2回答

2658閲覧

フォームのradioボタンで開いたdivを開いたままにしたいです。

vanille

総合スコア16

JavaScript

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

HTML

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

0グッド

0クリップ

投稿2016/08/24 04:49

編集2016/08/29 09:10

postmailを改造してフォームをつくっています。
radioボタンで選択によって違うdivが開くようにしました。
送信して、確認画面から戻って編集するときに、divがブラウザによって閉じてしまいます。
history.back()
window.onloadがきかなかったので、
cookie.jsを使いたいのですが、
書き方がわからないので
教えていただきたいです。
よろしくお願いします。

###ソースコード

<script type="text/javascript"> function hyoji1(num) { if (num == 0){ document.getElementById("ib").style.display = '' ; document.getElementById("na").style.display = 'none' ; }else{ document.getElementById("ib").style.display = 'none' ; document.getElementById("na").style.display = '' ; } } </script> <form> <p>選択</p> <label><input id="r1" type="radio" name="st" value="b" onclick="hyoji1(0)"> b</label> <label><input id="r2" type="radio" name="st" value="c" onclick="hyoji1(1)"> c</label> <label><input id="r3" type="radio" name="st" value="d" onclick="hyoji1(1)"> d</label> <div id="ib" style="display:none"></div> <div id="na" style="display:none"></div> <input type="submit" value="送信" /> </form>

###試したこと
window.onload = function(){hyoji1(num);}

###補足情報(言語/FW/ツール等のバージョンなど)
confirm.htmlでは、
<input type="button" value="前に戻る" onclick="history.back(); return false;" class="button" />
となっています。

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

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

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

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

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

kei344

2016/08/24 05:07

コードはコードブロックで囲んでいただけませんか? ```(バッククオート3つ)で囲み、前後に改行をいれるか、コードを選択して「<code>」ボタンを押すとコードブロックになります。
vanille

2016/08/25 00:01

アドバイスありがとうございます。これからもよろしくお願いします。
kei344

2016/08/25 06:00

cookie.jsとは特定ライブラリの名前でしょうか。その場合取得できるURLを追記いただけませんか?
vanille

2016/08/29 00:48

ありがとうございます。お手数おかけして申し訳ありません。
guest

回答2

0

ベストアンサー

クッキーではありませんが、ローカルストレージとかどうでしょう。

JavaScript

1if( window.localStorage ){ 2 var state = localStorage.getItem( 'tab_state' ); // ローカルストレージから取得 3 if ( state ) { 4 document.getElementById( state ).checked = true; // ラジオボタンを選択状態に 5 // ここでhyoji1の処理をする 6 } 7 var i, l, st = document.getElementsByName( 'st' ); // name="st" を全て取得 8 for( i = 0, l = st.length; i < l; i++ ) { 9 st[i].addEventListener( 'click', function( ev ) { 10 var id = ev.target.id; // ラジオボタンのid属性を取得 11 localStorage.setItem( 'tab_state', id ); // ローカルストレージに保存 12 }, false ); 13 } 14};

【[JavaScript] ローカルストレージ (Local Storage) を使用する】
https://www.ipentec.com/document/document.aspx?page=javascript-using-local-storage

投稿2016/08/27 10:28

kei344

総合スコア69400

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

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

vanille

2016/08/29 02:36

ありがとうございます!おかげでやっと最後のフォームの課題がクリアできました。 もう既に多くのユーザーがアクセス、使用しているフォームなので、UI/UXが向上出来て、クライアントにも喜んでもらえると思います。はじめての質問でしたが、親切に教えていただいて感謝しています。これからもどうぞよろしくお願いいたします。
vanille

2016/08/29 04:51 編集

つぎはぎのタグを整理整頓したら、すべてのブラウザで動くようになりました。ありがとうございます!
kei344

2016/08/29 04:57

解決できてよかったです!
vanille

2016/08/29 05:11

とても勉強になりました。ありがとうございます!
guest

0

戻ってきた時の処理ってブラウザやバージョンごとで微妙に違うので
なんともいえませんが、こんなふうにr1のチェック状況だけみて処理してみては?
(ラジオボタンは初期値を設定してください)

Javascript

1window.onload=function(){hyoji1();} 2function hyoji1(){ 3 var c=document.getElementById("r1").checked; 4 document.getElementById("ib").style.display = (c?'':'none'); 5 document.getElementById("na").style.display = (c?'none':''); 6}

HTML

1<form> 2<p>選択</p> 3<label><input id="r1" type="radio" name="st" value="b" onclick="hyoji1()" checked> 4b</label> 5<label><input id="r2" type="radio" name="st" value="c" onclick="hyoji1()"> 6c</label> 7<label><input id="r3" type="radio" name="st" value="d" onclick="hyoji1()"> 8d</label> 9 10<div id="ib">ib</div> 11<div id="na">na</div> 12<input type="submit" value="送信" /> 13</form>

投稿2016/08/24 05:14

yambejp

総合スコア114777

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

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

vanille

2016/08/25 00:25

ありがとうございます!早速試してみました。 カレンダーは開いてましたが、選択したボタンと選んだ箱の中に入力した値が違っていました。 こちらを参考にまた考えてみます!これからもよろしくお願いします。
vanille

2016/08/29 05:07

最終的に、お二人のscript 2つで完璧に動くようになりました。 本当にありがとうございました。とても勉強になりました。 また、機会がありましたら、どうぞよろしくお願いします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問