• 締切済み

親フォームのHiddenに子フォームから設定は可能ですか?

標記の通り、opener.windowにて、親フォームと子フォームを関連付けし、 子フォームで値を入力、close.windowをする際に親フォームのtextfield等に値を設定しております。 その後、設定された値を用いて、親フォームから登録処理等を行っています。 その際に、textFieldには問題なく値がセットされるのですが、どうもHiddenにはセットされていないようです。 そもそもTextfieldも、ソースを見る限りでは内容は書き換わっておりませんでした。 やはり見た目上でのみ設定され、ソース自体はまったく変わらない。 =ソース上でのみ存在するHiddenの値を、JavaScriptで変更することは不可能、という事なのでしょうか? ------------------------------ //親フォームと関連付け function LoadSet(){  oya_win = opener.window; } //フォームclose時に値をセット function oyaMsgSet(){  oya_win.document.フォーム名.elements['Hidden_Name[]'][cnt].value = "1";←ダメ  oya_win.document.フォーム名.elements['Txt_Name[]'][cnt].value = "設定値"←OK }

  • carm
  • お礼率70% (26/37)

みんなの回答

  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.1

ソース上でのみ存在するHiddenの値を、JavaScriptで変更することは不可能、という事なのでしょうか? => type="hidden"のフィールドもjavascriptで変更できます。 うまくいかないのはどこかに間違いがあるからです。 どこがおかしいかは、提示されているソースだけではわかりません。  フォームのソースも載せて下さい。  cntの値セットはどうしているのですか?  Hidden_Name[]、Txt_Name[]の値セットはどうしているのですか?

carm
質問者

補足

yyr446様 アドバイスありがとうございます。 試行錯誤した結果、Hiddenの値は変更されておりました。 ただ、質問の意図を自分自身が間違えておりました。申し訳ありません。 以下質問です。 ・親フォームからフォームのデータを子フォームに渡しつつ子フォームを開き、 子フォームでデータ編集後、閉じる際に親フォームへ編集したデータを設定しております。 親フォームはHiddenに編集したいデータを保持しており、 子フォームは親フォームからHiddenデータを受け取って値を編集後、親フォームのHiddenに値を返します。 Ex) 親:HiddenA Value:400→子フォームへ。 ↓ 子:HiddenA Value:400を受け取り、テキストにセット、Value=1000に編集。 親フォームのHiddenAへ返す。 ↓ 親:子フォームからHiddenAのデータを受け取る。HiddenA Value=1000 この後、親フォームにて登録ボタンを押し、登録処理(PHP)を行う分にはまったく問題ありません(編集後のHiddenの取得が可能です)。 ただ、ここで登録を行わず、"再度"子フォームを呼び出してデータを編集しようとすると、 以前(上記の例で倣えば400)のHiddenデータが子フォームにセットされてしまいます。 これはJavaScriptでは可能でしょうか? ソースの掲示に関しては、かなり長いソースの上、まとめる事が難しいので、 申し訳ありませんが、上記質問のお答えを、 出来る/出来ないだけで結構ですので、教えていただければと思います。

関連するQ&A

  • 子ウィンドウより親ウィンドウのフォームをsubmit

    親ウィンドウより子ウィンドウをwindow.openにて 表示し、 parent.window.opener.document.form.コントロール名.value="111"; というふうに、子ウィンドウより親ウィンドウのコントロールに値をセットしています。これに親ウィンドウのフォームをsubmitするという処理を追加したいのですが、可能なのでしょうか?? もし可能であれば、その方法を教えてください。 よろしくお願いします!!!! また、子ウィンドウより親ウィンドウのコントロールに値をセットした場合、親ウィンドウのonchangeイベントは発生しないようなのですが、この解消方法はないでしょうか?? よろしくお願いします!!!!

  • 親→子1→子2→親のデータ渡し

    1.親ウィンドウからサブウィンドウ1を開く。 2.サブウィンドウ1でsubmitボタンを押すと値が  window.openerで親に渡り更にサブウィドウ2が開く。 ここまでは、出来るのですが 3.サブウィンドウ2でsubmitボタンを押して値を親ウィンドウに渡すにはどうしたらよいでしょうか? ここでwindow.openerを使うとサブウィンドウ1が親ウィンドウと判断してしまい上手くいきません。 上手い方法があれば教えて下さい。

  • 親ウィンドウのフォームの値を変更

    showModalDialogでオープンした子画面から、returnValueで値を返すのとは違う方法で、親ウィンドウのフォームの値を変更したいと思っています。 (その子画面をオープンすると同時に、親ウィンドウのフォーム値を変更したいため) その際に    window.opener.document.formA.hiddenA.value = "aaa" という風に記述しているのですが、「window.opener.documentはオブジェクトではありません」というエラーになってしまいます。window.openで開いた子画面からだと、この方法でできたと思うのですが・・・どうすれば変更できるでしょうか?そもそも、showModalDialogでオープンした画面から親ウィンドウの値を変更すること自体がダメなのでしょうか? よろしくお願いします。

  • 子ウィンドウ→親ウィンドウのテキストフォームでバックスラッシュは?

    子ウィンドウ内でリンクをクリックしたら、親ウィンドウのテキストフォームに値が入力される、というところで問題が起きました。 // *********子ウィンドウのソース********** // ---関数部分--- function fntext(val1){ if (window.opener){ // 引数のval1を親ウィンドウのテキストフォームに入れる window.opener.document.フォーム名.テキストフォーム名.value=val1; } } // ---リンク部分--- <a href="#" onclick="fntext('117680')">xxxx</a> で、fntext関数の引数に全角文字や数字や英字を入れた場合はまったく問題ないのですが '\\\\\'というバックスラッシュ(円マーク)を入れると、親ウィンドウのテキストフォームに 値が入力されません。(↓こんな感じだと入力されません) <a href="#" onclick="fntext('\\\\\')">xxxx</a> バックスラッシュを使用する場合は特別な方法があるのでしょうか? どうかお願いします。

  • 子ウィンドウから親ウィンドウへの値代入

    こんにちは。 asp.net2.0を使い始めて間もないのですが、子ウィンドウから親ウィンドウへの値代入で困ってます。 親ウィンドウからボタンで子ウィンドウを表示し、子ウィンドウのGridViewで選択した値を親ウィンドウの テキストボックス(サーバーコントロール)に代入したいのですが、 ['window.opener.form1.TextBox1' は Null またはオブジェクトではありません。] というエラーが出てしまいます。 ネットで見つけたサンプルは、親、子ともにウェブフォームを使用しており、確かにうまくいくのですが、 私が作っているページはマスターページの中のコンテンツフォームを親としていて、うまくいきません。 ※但し、親側のコントロールをHTMLクライアントコントロールのINPUTタグにし、 さらにフォーム名をaspnetForm(ブラウザのソース表示でみたらそうなってました。自動生成?) にして ↓子ウィンドウのグリッド選択時ソース protected void GridView1_SelectedIndexChanged(object sender, EventArgs e) { string strScript; strScript = "<script language='javascript'>"; strScript += "window.opener.form1.TextBox1.value='aaaa';"; strScript += "window.close();"; strScript += "</script>"; Response.Write(strScript); } リテラルコントロールにしたり、TextBox1.valueではなくTextBox1.textにしてみたりと いろんなパターンを試しましたが、だめでした。 コンテンツフォームでは親のサーバーコントロールへの値代入は不可能なのでしょうか? そもそも、子ウィンドウでの検索というのはASP.NETでは、あまり一般的ではないのでしょうか? 宜しくお願いいたします。 (情報、不足してましたら教えてください。)

  • 親タブから子タブ開いて親タブへ戻す。

    以前、ここで質問をしたものです。 まだ、解決していません。 window.opener.focusが利かないと質問したものです。 親タブ(ウインドウ)から子タブ(ウインドウ)をひらいて そのリンク先を親タブ(ウインドウ)で制御しようとしています。 自分でいろいろやりましたが、現在chromeのみで動いています。 Firefox、IEでは動いていません。 他に良い方法はないでしょうか? 現在のコードです。 親<index.html> <html> <head> <title>TOPページ</title> <script type="text/javascript"> <!-- var win; // サブウィンドウを開く処理 function disp(url){ win = window.open(url, "oya"); } // --> </script> </head> <body> <p><a href="example_sub8.html" target="_blank" onClick="disp('example_sub8.html')">testサブウィンドウを開く</a></p> </body> </html> 子ウインドウ<example_sub8.html> <html> <head> <title>testサブウインドウ</title> <script type="text/javascript"> <!-- // リンクの処理開始 function disp(url){ if(!window.opener || window.opener.closed){ // メインウィンドウの存在をチェック window.alert('メインウィンドウがありません'); // 存在しない場合は警告ダイアログを表示 } else{ window.blur(); window.opener.focus(); window.open(url,"oya"); //window.opener.location.href = url; // 存在する場合はページを切りかえる } } // リンクの処理終了 // --> </script> </head> <body> <ul> <li><a href="#" onClick="disp('index.html'); return false;">トップページ</a></li> <li><a href="#" onClick="disp('index2.html'); return false;">test2ページ</a></li> </ul> </body> </html>

  • 子画面から親画面をクローズしたい

    子画面から親画面をクローズすると確認メッセージが表示されます。 非表示の方法はありますか? 現在の処理内容:  親画面:   ボタン押下時 onclick="window.opener='main';window.open('URL');return false;"  子画面:   onload時 window.opener.close(); 確認ブラウザ:IE10、Chrome43  ※IE10では表示されるが、Chrome43では表示されない。

  • サブウィンドウから親ウィンドウのファンクションを起動

    おせわになっております。 サブウィンドウから親ウィンドウのファンクションを起動する方法について困っています。 親ウィンドウから var subWin = window.open("a.html", "sub") でオープンしたサブウィンドウを閉じる場合に サブウィンドウから親ウィンドウの function sub_close() { subWin.close(); } を呼び出して閉じる処理をしています。 (サブウィンドウでwindow.opener.sub_close()) #これは正常に処理されます。 ここで問題なのですが、サブウィンドウがフレームの場合に、フレームセットされたHTMLから window.opener.sub_close() というような方法では親画面の操作ができないのでしょうか?(できませんでした。) 初歩的な質問で申し訳ないのですが、何かよい方法があれば教えてください。 宜しくお願いします。

  • 子ウィンドウから親ウィンドウのチェックボックス

    おそれいります。 現在、子ウインドウで、window.opener.document.getElementById('text1').value='4444'; window.opener.document.getElementById('text2').value='こんにちは'; window.opener.document.getElementById('text3').value='今日は晴れ'; として、親ウィンドウで <input type="text" id="text1"> <input type="text" id="text2"> <input type="text" id="text3"> へ値をセット出来ているのですが、 この記述の流れで親ウィンドウのチェックボックスを子ウィンドウからtrueにすることはできるでしょうか。よろしくお願いします。

  • javascriptでフォームに値を渡す

    javascriptでサブウィンドウを開き、親ページにあるフォームの値をサブウィンドウのテキストフィールドに渡す方法で複数項目がある場合、下記URLのようにラジオボタンならうまくいったのですが ラジオボタンなしで、ボタンを押すと直接その値をサブウィンドウに渡す方法はないでしょうか? 複数項目ある値をサブウィンドウに渡す(ラジオボタン) http://ausdruck.flier.jp/test/window11/oya_11.html 上記URLの方法ならうまくいったのですが下記URLのようにボタンを押してその値を 直接サブウィンドウに渡したいとおもっています。 http://ausdruck.flier.jp/test/window3/oya.html ▲こちらのイメージで渡したいのですが、複数項目があるとうまくいきません。

専門家に質問してみよう