ここから本文です

いくつかの入力項目があるフォームで、そのうち1つの項目を子ウィンドウを開いて...

hid********さん

2019/8/1501:25:16

いくつかの入力項目があるフォームで、そのうち1つの項目を子ウィンドウを開いて入力させるようにしているのですが、子ウィンドウを開くと全ての項目がクリアされてしまうのを避けるにはどのようにしますか?

簡略化して、親ウィンドウのフォーム部分とjavascript部分は以下の感じです。
input1だけ子ウィンドウで入力させるために、リンクを開くと、既に入力しているinput1 input2 input3 の全てが空欄になります。また valueを設定していても、それもどうようにクリアされます。
親ウィンドウでの入力値は子ウィンドウを開いた時に保持できないのでしょうか。
手元のchromとedgeの最新バージョンでは、どちらも同様に子オープン時に入力はクリアされ空欄になります。
<form name='input' method='post' action='./test.php'>
<a href='' onClick='openWindow()'> 子ウィンドウで入力</a>
<input size='30' name='input1'>
<input size='30' name='input2'>
<input size='30' name='input3'>
</form>

<script>
function openWindow() {
window.open('input.php', 'child')
}
</script>

補足どうも、 Aタグではなく <input type='button' onclick='openWindow() value='子ウィンドウで入力>
とすると、値がそのまま残りしました。Aタグでは同じように挙動させることはできないのでしょうか。

閲覧数:
16
回答数:
1

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

glo********さん

2019/8/1508:47:18

回答順を逆にして【補足】から。

その【補足】の input タグは間違っています。
<input type='button' onclick='openWindow()' value='子ウィンドウで入力'>
でしょうね。


> Aタグでは同じように挙動させることはできないのでしょうか。

これは一般的にどこでもよく見る
href='javascript:void(0)'
で解決するのではないでしょうか?

「javascript void(0) とは UX MILK」
https://uxmilk.jp/47058



というわけで全文例↓。


<!DOCTYPE html>
<html>
<head>
<title>Test</title>
</head>
<body>

<form name='input' method='post' action='./test.php'>
<a href='javascript:void(0)' onclick='openWindow()'> 子ウィンドウで入力</a>
<input type='button' onclick='openWindow()' value='子ウィンドウで入力'>
<input size='30' name='input1'>
<input size='30' name='input2'>
<input size='30' name='input3'>
</form>

<script>
function openWindow() {
    window.open('input.php', 'child')
}
</script>

</body>
</html>

この回答は投票によってベストアンサーに選ばれました!

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる