プロが教えるわが家の防犯対策術!

こんばんは。
質問がありますので教えていただけますか?
入力フォームをHTMLで書きました。
ボタンを押すと次の画面で入力確認できるようにしました。
次の画面で修正ボタンを押すと1つ前の入力フォームに戻るように
しました。
しかし、もどったら初めに入力した値がリセットされてしまいます。
リセットされずに入力データを保持する方法が分からないのですが
教えていただけませんでしょうか?

A 回答 (2件)

ブラウザの戻るボタンなどはページのキャッシュによって保持されるので


キャッシュが消えれば初期状態になってしまいます。
他にIEだとJavaScriptで操作している部分まで戻ってしまいますね。
(inputのtype="file"もセキュリティの問題から消えます)
ここはセッションやJavaScriptを併用して自力で復元してやるしか
ないです。

戻るボタンで前のページに戻ったときは(基本的には消えているのが
普通で)内容が残っていることがあるのはどちらかというと偶然と
見た方がいいと思います。

因みにこんな感じにするとページを推移せずに確認画面を表示できたり
しますけど、JavaScriptに対応していない環境や無効な環境では正常に
表示できませんし、ブラウザのCSS解釈とかいろいろ問題は多いと
思います。

<html lang="ja">
<head>
<title></title>
<script type="text/javascript">
function pre() {
var form = document.getElementsByName('form')[0];
var td = document.getElementsByTagName('td');
document.getElementById('input').style.display = 'none';
document.getElementById('preview').style.display = 'block';
for(var i = 0; i < form.length; i++) {
if(form[i].name != '' && form[i].name != 'submit') {
td['pre_' + form[i].name].firstChild.nodeValue = form[i].value != '' ? form[i].value : ' ';
}
}
return false;
}

function back() {
document.getElementById('input').style.display = 'block';
document.getElementById('preview').style.display = 'none';
return;
}
</script>
</head>
<body>
<form name="form" action="">
<div id="input">
<input type="text" name="text1" value="">
<input type="file" name="file1">
<input type="button" value="確認" onclick="return pre();">
</div>
<table border="1" id="preview" style="display: none;">
<tr>
<td id="pre_text1"><td>
</tr>
<tr>
<td id="pre_file1"><td>
</tr>
<tr>
<td><input type="submit" name="submit" value="送信">
<input type="button" value="戻る" onclick="back();"></td>
</tr>
</table>
</form>
</body>
</html>
    • good
    • 0

>次の画面で修正ボタンを押す



修正ボタンがそういうつくりなのでしょう。
(元のURLを呼び出しているだけだとか・・・)
history.backしたりすればある程度もとのデータは残せると思います
    • good
    • 0

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