2016-04-23 7 views
0

提出したフォームの下に情報を表示しようとしています。これを理解するのを助けてください。送信ボタンには何も表示されません。誰か説明していただけますか?ここ は私のHTMLコードです:ユーザーが送信を入力した後、同じページにフォームフィールド値を印刷するにはどうすればよいですか?

function showInput() { 
    var output_info = document.getElementById("myform").value; 

    document.getElementById('display').innerHTML = output_info; 
} 
+0

によって返された要素を反復するforループは... –

+1

FORMは値を持ちません。各INPUTは行います。あなたはそれぞれの価値を得てそれをあなたの出力に加えなければなりません。 – Will

+0

また、送信ボタンですぐにページを送信してリフレッシュさせませんか? – karina

答えて

0

を試してみてください。

ここ
<form id="myform" role="form"> 
     <label for="Name">Name:</label> 
     <input type="text" class="form-control" id="Name"> 
     <div class="dropdown"> 
     <label for="countries">Country:</label> 
     <select class="form-control" id="countries"> 
      <option value="">Select a Country:</option> 
     </select> 
     <label for="states">State:</label> 
     <select class="form-control" id="states"> 
      <option value="">Select a State</option> 
     </select> 
     <input type="submit" onclick="showInput();"> 
    </form> 
    </div> 
     <label> Your input:</label> 
     <p><span id='display'> 
    </span></p> 

は私のJavaScriptコードがありますform;セレクタ付き.querySelectorAll()"input:not([type=submit]), select"に接続してformに接続してform要素を選択してください。また、あなたのマークアップを共有.querySelectorAll()

<script> 
 
    function showInput(e) { 
 
    e.preventDefault(); 
 
    var output_info = document.getElementById("myform"); 
 
    var display = document.getElementById("display"); 
 
    var data = output_info.querySelectorAll("input:not([type=submit]), select"); 
 
    for (var i = 0; i < data.length; i++) { 
 
     display.innerHTML += "name:" + data[i].name + " value:" + data[i].value + "<br>" 
 
    } 
 
    } 
 
</script> 
 
<form id="myform" role="form"> 
 
    <label for="Name">Name:</label> 
 
    <input type="text" class="form-control" name="Name" id="Name" /> 
 
    <div class="dropdown"> 
 
    <label for="countries">Country:</label> 
 
    <select class="form-control" id="countries" name="countries"> 
 
     <option value="">Select a Country:</option> 
 
     <option value="abc" selected>abc</option> 
 
    </select> 
 
    <label for="states">State:</label> 
 
    <select class="form-control" id="states" name="states"> 
 
     <option value="">Select a State</option> 
 
     <option value="123" selected>123</option> 
 
    </select> 
 
    <input type="submit" onclick="showInput(event);" /> 
 
    </div> 
 
</form> 
 
<label>Your input:</label> 
 
<p><span id='display'> 
 
    </span> 
 
</p>

+0

これは完全に機能します。ただし、送信時にヒットするたびに、情報が印刷されます。送信を一度クリックした後に送信ボタンを無効にするにはどうすればよいですか? – user2817815

+0

@ user2817815 'for'ループの後に' output_info.querySelector( "input [type = submit]")を追加します。setAttribute( "disabled"、true) ' – guest271314

1

select要素、inputname属性を含める試しこの

<?php 
if(isset($_POST["submit"])) 
{ 

echo $_POST["Name"]; 
echo $_POST["countries"]; 
echo $_POST["states"]; 
} 
?> 
<form id="myform" role="form" action="" method="post"> 
     <label for="Name">Name:</label> 
     <input type="text" class="form-control" name="Name"> 
     <label for="countries">Country:</label> 
     <select class="form-control" name="countries"> 
      <option value="">Select a Country:</option> 
     </select> 
     <label for="states">State:</label> 
     <select class="form-control" name="states"> 
      <option value="">Select a State</option> 
     </select> 
     <input type="submit" name="submit"> 
    </form>