• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:formのtextの文字色を変えたい)

formのtextの文字色を変えたい

このQ&Aのポイント
  • JavaScriptでパラメータを用いて2ページ目のフォームのテキストボックスに値を自動入力する方法について、テキストボックスの文字色を変える方法を知りたいです。
  • 1ページ目で指定したパラメータを2ページ目のフォーム内のテキストボックスに自動入力する際に、他のテキストボックスとは異なる文字色に設定したいです。
  • 質問者は、これが実現可能かどうかを知りたいです。

質問者が選んだベストアンサー

  • ベストアンサー
noname#84373
noname#84373
回答No.3

<html> <body> <form action="test1.html" method="post" onSubmit="hoge()"> <p> <input type="text" id="a" value="abcde"><br> <input type="text" id="b" value="aiueo"><br> <input type="submit"> </p> </form> <script> window.onload=function(){ saveCookie('a','',1); saveCookie('b','',1); } function hoge(){ saveCookie('a',document.getElementById('a').value,1); saveCookie('b',document.getElementById('b').value,1); return true; } function saveCookie( vn, v, dy ){ if(navigator.cookieEnabled) document.cookie=vn+'='+escape(v)+ ';expires='+new Date((new Date()).getTime()+dy*86400000).toGMTString();} </script> -------------- <html> <head><style>.col1{color:#f00}</style></head> <body> <form submit="test1.html" onSubmit="hoge()"> <p> <input type="text" id="a" value="abcde"><br> <input type="text" id="b" value="aiueo"><br> <input type="submit"> </p> </form> <script> window.onload=function(){ var v; document.getElementById('a').className=(v=loadCookie('a'))?'col1':''; document.getElementById('a').value= v; document.getElementById('b').className=(v=loadCookie('b'))?'col1':''; document.getElementById('b').value= v; } function saveCookie( vn, v, dy ){ if(navigator.cookieEnabled) document.cookie=vn+'='+escape(v)+ ';expires='+new Date((new Date()).getTime()+dy*86400000).toGMTString();} function loadCookie(vn){ var r = '',o = document.cookie.split('; '); for (var i in o){ var c = o[i].split('='); if (c[0]==vn && c[1]!=''){ r = c[1]?unescape(c[1]):'';break; }} return r;} </script>

jef080928
質問者

お礼

_pipi_さん 回答有難うございました。 難しいスクリププトをいただきました。これから解読させていただきます。とりあえずお礼まで。

すると、全ての回答が全文表示されます。

その他の回答 (3)

noname#84373
noname#84373
回答No.4

受け渡しにはクッキーを使ってます saveCookie(vn,v,dy)のvnは変数の名前、vは変数の値、dyが保存期間 loadCokkie(vn)で変数の名前の値を読み出します もし渡されたデータがnull以外だったら赤色に変える if(para=='') document.getElementById('a').style.color='#f00'; サンプルは、データの受け渡しがあれば、スタイルシートで classNameをcol1(赤)にしてます。 あと自分のミス発見 2つめのHTMLでフォームの <form submit="test1.html" onSubmit="hoge()"> のsubmit="test1.html"は意味がありません なくして、idでもふってください

jef080928
質問者

お礼

_pipi_さん No.4の補足説明有難うございました。クッキーでお受け渡し方法参考になりました。有効期限付きでの受け渡し方法までできることがわかり大変参考になりました。 渡されたデータの内容で色変えをする条件文なども大凡理解できました。もう少し自分の中で、理解を深め自分の応用例に組み込んで見たいと思っています。有難うございました。 フォーム内で、単純に特定のテキスト欄などの文字フォント、色、背景色などはstyleでHTMLでも処理できるのでそちらの方法とも組み合わせて行こうと考えています。

すると、全ての回答が全文表示されます。
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

javascirptでパラメータの受け渡しをするのであれば、 (1)getでlocation.searchをつかう (2)hash値をつかう (3)クッキーをつかう などあると思いますが、どれも中途半端。 やはりデータの受け渡しにはgetやpostをつかったサーバーサイドの プログラムを利用するのが賢明です

jef080928
質問者

お礼

yambejpさん、 回答にお礼を申し上げます。 質問にも書かせていただきましたが、パラメータの引渡しについては、URL上に丸見えになりますが、この方法で引き渡すことで問題意識は持っていません。これでOKと思っています。質問のポイントはこの引き渡された「?=no.001」から「no.001」を抽出してフォームのテキスト内に指定した色で書き込む方法が考えつかなくてお知恵を駆りたくて質問したのです。例示したスクリプトで黒色であればテキスト欄内に「no.001」は書き込まれているかと思います。この色を黒でなく指定した色にしたいのです。他のテキスト欄は黒色でよく、パラメータとして引き渡されたものだけを識別できるように色を変えたいのです。お分かりいただけますでしょうか?

すると、全ての回答が全文表示されます。
  • notnot
  • ベストアンサー率47% (4902/10363)
回答No.1

JavaScriptだけで、別のページに情報を引き継ぐとことは出来ないので、サーバー側で何とかするしかないです。

jef080928
質問者

お礼

notnotさん 回答有難うございます。パラメータの引渡しの方法については例示したスクリプトで満足しています。質問は引き渡されたパラメータをフォームのテキスト欄に色を指定して表示する方法についてなんです。質問の仕方が悪かったのかもしれません。

すると、全ての回答が全文表示されます。

関連するQ&A