- 締切済み
教えてください!!!
初心者です。先輩方・・・教えてください。 親ソース 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指定で渡す方法しかしらないもので・・・。 調べても分かりませんでした。時間があるかたよろしくお願いします
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- 神崎 渉瑠(@taloo)
- ベストアンサー率44% (1016/2280)
readonly属性を付けるので実現できると思いますが、別案として。 .valueのかわりに.defaultValueを使うと、 入力内容をいくら変更しても、<input value="">のvalueが使われます。 .defaultValueは変更したものを元に戻すときに使うことが多いです。
- dell_OK
- ベストアンサー率13% (766/5722)
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="固定文字を変更">
お礼
ご回答ありがとうございます! 頑張って読んだんですけど・・・いまいち読めません>< 勉強もしたいので。 余裕があれば解説教えてください。
- yambejp
- ベストアンサー率51% (3827/7415)
>変更できないよう 状況がよくわからないですが、readonly属性をつけておけばよいのでは? (ユーザーが偽装すればなんとでもなるのがjavascriptなので あまり厳密にやろうとしても徒労になります)
お礼
readonly 属性で実現できるようですありがとうございました!!
補足
テキストBOXなので変更できてしまいます。 フォームタグ以外にはわたせないのでしょうか? よろしくお願い致します。
お礼
そんな実現方法もあるのですね参考になりました!