プロが教える店舗&オフィスのセキュリティ対策術

標記の通り、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
}

A 回答 (1件)

ソース上でのみ存在するHiddenの値を、JavaScriptで変更することは不可能、という事なのでしょうか?


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

この回答への補足

yyr446様

アドバイスありがとうございます。
試行錯誤した結果、Hiddenの値は変更されておりました。
ただ、質問の意図を自分自身が間違えておりました。申し訳ありません。
以下質問です。

・親フォームからフォームのデータを子フォームに渡しつつ子フォームを開き、
子フォームでデータ編集後、閉じる際に親フォームへ編集したデータを設定しております。
親フォームはHiddenに編集したいデータを保持しており、
子フォームは親フォームからHiddenデータを受け取って値を編集後、親フォームのHiddenに値を返します。

Ex)
親:HiddenA Value:400→子フォームへ。

子:HiddenA Value:400を受け取り、テキストにセット、Value=1000に編集。
親フォームのHiddenAへ返す。

親:子フォームからHiddenAのデータを受け取る。HiddenA Value=1000

この後、親フォームにて登録ボタンを押し、登録処理(PHP)を行う分にはまったく問題ありません(編集後のHiddenの取得が可能です)。

ただ、ここで登録を行わず、"再度"子フォームを呼び出してデータを編集しようとすると、
以前(上記の例で倣えば400)のHiddenデータが子フォームにセットされてしまいます。

これはJavaScriptでは可能でしょうか?
ソースの掲示に関しては、かなり長いソースの上、まとめる事が難しいので、
申し訳ありませんが、上記質問のお答えを、
出来る/出来ないだけで結構ですので、教えていただければと思います。

補足日時:2009/04/30 21:07
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!