• 締切済み

教えてください!!!

初心者です。先輩方・・・教えてください。 親ソース function clickAccountFind(str) { window.open('/cgi-bin/usersel.cgi?file='+str+'&mode_del=4','UserselPopup','width=680,height=550,resizable=1,scrollbars=1'); } <form name="checkForm" id = "checkForm" action="#" method="POST"> <input type="hidden" name="_FID_BelongAccount" value="子値" /> <input type="text" name="pre_FID_BelongAccount" value="子値" /> <span class="BtnL"><a href="#" onclick="javascript:clickAccountFind('_FID_BelongAccount');" class="BtnLinkL"> 設定 </a></span> 子ソース function UserSubmit(){ try { if('$sakujo_flg'){ top.opener.document.checkForm.elements['$sakujo_flg'].value='$gid'; top.opener.document.checkForm.elements['$sakujo_flg2'].value='$sakujo_kensaku'; top.window.close(); } このソースで子のvalueを親のフォームデータに代入する事を確認できたのですが。 input type text の場合ユーザが画面上の値をかってに変更できてしまいます。 変更できないよう、値を子から親に渡すほうほうありますでしょうか? 指定箇所にデータを渡す方法はフォームタグ内のname指定で渡す方法しかしらないもので・・・。 調べても分かりませんでした。時間があるかたよろしくお願いします

みんなの回答

回答No.3

readonly属性を付けるので実現できると思いますが、別案として。 .valueのかわりに.defaultValueを使うと、 入力内容をいくら変更しても、<input value="">のvalueが使われます。 .defaultValueは変更したものを元に戻すときに使うことが多いです。

noriji1
質問者

お礼

そんな実現方法もあるのですね参考になりました!

  • dell_OK
  • ベストアンサー率13% (740/5646)
回答No.2

No.1のご回答にあるように、readonly属性を付ければ、テキストボックスの入力変更ができなくなるはずです。 <input type="text" name="pre_FID_BelongAccount" value="子値" readonly /> テキストボックスではない固定文字(入力不可能なもの)を変更する方法がないわけではありません。 私もあまり詳しくないのと、一般的にはおすすめではない方法なのかも知れませんが、次のようにできます。 記述方法がわかれば、応用できると思われるので、説明は省きます。 ご利用のCGIや子画面の仕様は考えずに、テキストボックスと固定文字の変更でサンプル。 a.html <input type="text" name="f1" readonly value="あいうえお"> <div id="f2">あいうえお</div> <input type="button" onClick="window.open('b.html')" value="子画面を開く"> b.html <input type="button" onClick="opener.f1.value='かきくけこ'" value="テキストボックスを変更"> <input type="button" onClick="opener.document.getElementById('f2').innerText='かきくけこ'" value="固定文字を変更">

noriji1
質問者

お礼

ご回答ありがとうございます! 頑張って読んだんですけど・・・いまいち読めません>< 勉強もしたいので。 余裕があれば解説教えてください。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

>変更できないよう 状況がよくわからないですが、readonly属性をつけておけばよいのでは? (ユーザーが偽装すればなんとでもなるのがjavascriptなので あまり厳密にやろうとしても徒労になります)

noriji1
質問者

お礼

readonly 属性で実現できるようですありがとうございました!!

noriji1
質問者

補足

テキストBOXなので変更できてしまいます。 フォームタグ以外にはわたせないのでしょうか? よろしくお願い致します。

関連するQ&A

  • 選択されたラジオボタンの値が取り出せない

    フォームを使って普通のHTMLで記述すれば選択された値が 送られてくると思うのですが、エレメントを作って次のような やり方だと、「2」を選択したとしてもvalueが「1」しか返ってきません。 どうすれば適切に値を取り出すことができるのでしょうか? var element1 = document.createElement("span"); element1.innerHTML = "<input type='radio' name='a' value=1>"; document.body.appendChild(element1); var element2 = document.createElement("span"); element2.innerHTML = "<input type='radio' name='a' value=2>"; document.body.appendChild(element2); ~何かクリックした先でidが「a」のオブジェクトを取得し、選択されてた値を取り出したい~ var ele = document.getElementById("a"); alert(ele.value);←1しか表示されない

  • javascript 要素取得

    htmlでチェックボックスを作り、その値をjavascriptで取得したいと思い、 下記のようなプログラムを書きました。 セレクトボックスから複数選択できるようにしたいのですが、 表示されるのは複数選んだ際に一番初めに選択したものだけです。  例) 「あああ」と「いいい」を選ぶと「あああ」のみ表示される。 しかし、これを「あああ.いいい」としたいのです。 できれば、 「あああ  いいい」 と改行できるといいです。 formの中にたくさんの項目があるため、 forのところがうまくいっていないのでしょうか? どなたかよろしくお願いします。 javascript側 function checkbox(){  var str="";  for(i=0;i<document.form1.elements.length;i++){   if(document.form1.elements[i].checked){     if(str != "") str = str + ".";     str = str + document.form1.document[i].value;   }  }  if(str == ""){   alert("入力してください");   return false;  }else{   document.form1.submit();  } } HTML側 <form action="<%=遷移先ページ%>" method="post" name="form1"> <select 複数> <input 複数> <input type="checkbox" name="document" value="・あああ"/>あああ <input type="checkbox" name="document" value="・いいい"/>いいい <input type="checkbox" name="document" value="・ううう"/>ううう <input type="submit" value="Submit" onclick="return checkbox();">

  • 色をラジオボタンで選択

    エレメントでボタンを押すと色を変えるJavaScriptです。 検索をしながら ボタンで一度変えることはできるようになりましたが <script type="text/javascript"> function effect() { var element = document.getElementById("sample"); element.style.color = '#000000'; } </script> <button onclick="effect()">チェンジ</button> <span id="sample">■□□■</span> ラジオボタンで選択するようにしたいのですが どのようにすればよいでしょうか? うまくいく方法を教えてください。 ブラウザーはGoogle Chrome最新版です。 どうしてもできなければ Firefoxでもかまいません。 <script type="text/javascript"> function effect() { var element = document.getElementById("sample"); element.style.color = '#000000'; } </script> <input type=radio name="colorcode" value="#000000" checked>黒 <input type=radio name="colorcode" value="#ff0000">赤 <input type=radio name="colorcode" value="#00ff00">緑 <span id="sample">■□□■</span>

  • <span>の中では折り返さないにするには

    どうしたらいいのでしょうか? <table><tr><td> <span><input type="checkbox" name="goo[]" value="aaaa "/>aaaa</span> <span><input type="checkbox" name="goo[]" ・・・・・・・・・・・・・・・・ <span><input type="checkbox" name="goo[]" value="zzzz "/>zzzz</span> </td></tr></table> において <td>~</td> の内部のデータは折り返されますが 折り返す際に<span>~</span>の途中では折り返されないようにするにはどうしたらいいのでしょう?

    • ベストアンサー
    • HTML
  • li タグ全体をリンクに。

    <ul> <li><label><input type="radio" name="" value="" ><span>text</span></label></li> <li><label><input type="radio" name="" value="" ><span>text</span></label></li> <li><label><input type="radio" name="" value="" ><span>text</span></label></li> </ul> 上記ですが、リストのどこを押してもラジオがチェックされるようCSSで実装したいと、考えています。html 5 で 最新スマフォならというところです。 どうぞよろしくおねがいいたします。

    • ベストアンサー
    • HTML
  • WSH

    こんにちは。 下記のようなものを作りたいのですが、動きません。 どう記述するものなのでしょうか? おかしい部分はループ内の"I"です。 HTMLでフォームをおき、一列(4つ)一組として、三列用意しました。たとえば、 あ い う え か き く け さ し す せ と各テキストボックスに入力し、実行ボタンを押したとき、テキストファイルには、 あ,い,う,え か,き,く,け さ,し,す,せ と書き込まれるようにしたいのです。 下記、ソースです。 よろしくお願いいたします。 <script language=vbscript> <!-- Sub ok_OnClick dim o,p,q,r,str,I,n n=3 Set fso = CreateObject("Scripting.FileSystemObject") Set tmpFile = fso.CreateTextFile("a.txt") for I =1 to n o=File[I]Name1.value p=File[I]Name2.value q=File[I]Name3.value r=File[I]Name4.value str=o+","+p+","+q+","+r tmpFile.WriteLine(str) loop tmpFile.close Set tmpFile = Nothing Set fso = Nothing End Sub --> </script> <html><body><center> <input type=text name=File1Name1 value=""> <input type=text name=File1Name2 value=""> <input type=text name=File1Name3 value=""> <input type=text name=File1Name4 value=""><br> <input type=text name=File2Name1 value=""> <input type=text name=File2Name2 value=""> <input type=text name=File2Name3 value=""> <input type=text name=File2Name4 value=""><br> <input type=text name=File3Name1 value=""> <input type=text name=File3Name2 value=""> <input type=text name=File3Name3 value=""> <input type=text name=File3Name4 value=""><br><br><br> <input type=button name=ok value=登録></center> </body> </html>

  • JavaScriptでの文字の流れる掲示板について

    ホームページのJavaScriptで、「文字が流れる掲示板」のソースを下記に書きましたが、文字の色やFormの背景色などは、どのように変更したらよいでしょうか、分かりましたら教えてください。よろしくお願いします。 <FORM NAME="time"><INPUT TYPE="text" NAME="str" SIZE="100" ></FORM> <SCRIPT LANGUAGE="JavaScript"> <!--  str = "helloword !!"; str = " " + str; i = 0; function tick() { document.forms['time'].elements['str'].value = str.substring(i, str.length) + str.substring(0, i); i = ++i % str.length; setTimeout("tick()", 120); } tick(); // --> </SCRIPT>

  • チェックボックスで選択したものがINSERTできません。

    <input type="checkbox" name="color[]" value="1" checked>赤 <input type="checkbox" name="color[]" value="2" >青 <input type="checkbox" name="color[]" value="3" >黄 <input type="checkbox" name="color[]" value="4" >緑 をPOSTで送ってPHPで $color_arr=Array(1=>"赤",2=>"青",3=>"黄",4=>"緑"); $color=$_POST["color"]; $str_color=""; foreach ($color as $key => $value){ if($str_color!="") $str_color.=","; $str_color.=$color_arr[$value]; } $html = str_replace('_%color%_', $str_color, $html); として追加内容確認画面で <input type="hidden" name="color" value="_%color%_"> _%color%_ として、チェックしたものを 赤,黄のように表示させて「OK」ボタンを押して PHPでINSERTするんですが、 mysql_query('insert into table1(name,color) values("'.$_POST['name'].'","'.$_POST['color'].'")'); としても空白のままです。nameはちゃんと入ってます。 テーブルは name varchar(50) color char(1) です。

    • ベストアンサー
    • PHP
  • IEで子ウインドウから親ウインドウへのタグの追加

    IEで子ウインドウから親ウインドウへのタグの追加 【やりたいこと】 1.親ウインドウからポップアップで子ウインドウを出して、その子ウインドウ内でチェックしたものを親ウインドウの<select>タグに<option>タグとして付け加えること。 2.同じくhiddenタグでチェックしたもののvalueを持たせたいということ。 とあるサイトを参考に、firefoxではこの挙動ができました。 ただ、IEだと親ウインドウに何も反映されなくて困っています。 以下ソース(一部)です。 --親html-- <head> <script type="text/javascript"> <!-- var w = window; function openWin(url) { if ((w == window) || w.closed) { w = open(url, "_blank", "width=800,height=600,scrollbars=yes"); } else { w.focus(); } return(false); } // --> </script> </head> <body> <select id="selectArea" size="5" name="search_area" class="list_box"> (ここに1.) </select> <div id="search_area"> (ここに2.) </div> <input type="button" onClick="return openWin('checkbox.php')" value="チェックをつける"> </body> --子html-- <input type="checkbox" name="department" value="c1" onclick="BoxCheckChild(this)"> <input type="checkbox" value="t1" onclick="BoxCheckChild(this)"> <input type="checkbox" value="s1" onclick="BoxCheckChild(this)"> 子htmlでは、onclickでチェックしたチェックボックスに対して処理をしています。 --javascript-- function appendOptionLast(str, value){//親ウインドウに<option>として追加(1.) var elOptNew = window.opener.document.createElement('option'); elOptNew.text = str; elOptNew.value = value; var elSel = window.opener.document.getElementById('selectArea'); var nstr = "<option value=aaa>test</option>" try { elSel.add(elOptNew, null); } catch(ex) { elSel.add(elOptNew) } function make_hidden(value){//hiddenタグ作成、追加(2.) var q = document.createElement('input'); q.type = 'hidden'; value = value.slice(1); if(type == "c"){ q.name = 'department[]'; }else if(type == "t"){ q.name = 'theme[]'; }else if(type == "s"){ q.name = 'index[]'; } q.value = value; window.opener.document.getElementById("search_area").appendChild(q); } となっています。 ソース、説明ともにわかり辛いかもしれませんが、どなたかわかる方いたら助けてもらえるとありがたいです。

  • アンダーバーのname値は取得できないでしょうか?

    Javascriptのname値にアンダーバーは付けない方が 良いのでしょうか? 又、使用した場合、name値を取得する方法はありますか? 値を取得できない例 alert(document.frm1.day_flg.value); 値を取得できる例 alert(document.frm1.dayflg.value); <form name="frm1"> <input type="radio" name="day_flg" value="1" checked> <input type="radio" name="dayflg" value="1" checked> </from>

専門家に質問してみよう