2016-10-11 7 views
1

は私が フォーム値がinnerHTMLの

私が提出.innerHTML

を使用して表示するフォームを得たときに前のページに失われ、バックフォームページに戻り、フォームは空です。

なぜですか?ここで

は(フォームに値を入力し、提出し、戻って違いScreen3を参照してください。

document.getElementById('test').innerHTML = ''+ 
    '<form method="post" action="azerty.php">'+ 
    '<input type="text"> '+ 
    '<input type="submit" value="OK">'+ 
    '</form>'; 

第二のフォームのための簡単な解決策はあるのjsfiddle

https://jsfiddle.net/ft5bjhqq/3/

です最初の動作をコピーするには

ありがとうございます。

+0

フォームの内容は何ですか? – Halcyon

+0

提出する前にフォームに入力した内容。 【画面1:数値入力(http://img15.hostingpics.net/pics/421006screen1.png) を:(http://img15.hostingpics.net/pics/548033screen2.png)Screen2に提出] [画面3:前のページに戻る](http://img15.hostingpics.net/pics/985797screen3.png) – Hlkz

+0

ページを読み込むたびに、値を入力するために非表示の入力を使用しないのはなぜですか同じ.innerHTMLでテストを読み込みます。 –

答えて

0

これは最善の方法であるかどうかわかりませんが、問題が解決します。あなたのフィドルを編集

Fiddle

HTML

<form method="post" onsubmit="copValue()" action="azerty.php"> 
    <input type="text"> 
    <input type="submit" value="OK"> 
</form> 

<br> 

innerhtml 
<div id="test" > </div> 
<input type="hidden" id="iAmHidden"> 

JS

var value=document.getElementById('iAmHidden').value; 


    function copValue() { 
    document.getElementById('iAmHidden').value = document.getElementById('formText').value; 
    return true; 
    } 

document.getElementById('test').innerHTML = ''+ 
    '<form method="post" onsubmit="copValue()" action="azerty.php">'+ 
    '<input type="text" id="formText" value="'+value+'"> '+ 
    '<input type="submit" value="OK">'+ 
    '</form>'; 

が、それはあなたの問題を解決ホープチェック!!

+0

ありがとうございました!私はinnerHTMLを使用して、ページ全体をリロードせずにページを変更します。 (メニュー/フッターがリロードされないので)ページの変更の前後で音楽を再生し続けることができます。そのため、私のスクリプトがフォームを表示する前に隠れた入力HTMLを設定することはできません。 (フォームはスクリプトを介して表示されるページにあります) – Hlkz

+0

私のウェブサイトのすべてのページに隠れた入力を設定する方法はまだ使用できますが、別の方法があると思います – Hlkz

+0

ええ、答えとして与えることができますそれはあなたのために働いた場合!!、ありがとう!! –