2017-04-04 10 views
2

フォーム入力を段落に表示させようとしていますが、一時的に表示されてから消えてしまいます。ここに私のコードはありますか:正しく出力するためにフォームを取得する

<form onSubmit = "submitForm()" name="myForm"> 
    First Name:<input type="text" name="firstName" /><br /> 
    Last Name:<input type="text" name="lastName" /><br /> 
    <input type="submit" value=" Submit " name="submit" /> 
    </form> 

<p id="para"> 

</p> 

function submitForm() { 
    var firstName = document.forms["myForm"]["firstName"].value; 
    var lastName = document.forms["myForm"]["lastName"].value; 
    document.getElementById('para').innerHTML = "Your first name is " + firstName + " and your last name is " + lastName; 
} 

恐らく消えている理由はおそらくフォーム自体と関係がありますか?しかし、私は完全には分かりません。何かご意見は?

+2

がフォームを送信すると、ページが/リロードをポストバックするようになりますです。フォーム自体をあなたの関数 'onSubmit =" submitForm(this) "'に渡して、関数自体に関数submitForm(e){...} 'を追加し、' e関数内の.preventDefault()を呼び出します。 – Santi

+1

これが起こるのを止めるにはどうしてですか?たとえば、1つのチュートリアルで、私はその男がどこかに 'return false'と入力したのを見ました。 – Brixsta

+1

または、フォームタグを使用しない方がよいですか? – Brixsta

答えて

1

あなたの解決策は次のとおりです。

問題は、実際にはフォームのデフォルト動作を妨げていないからです。したがって、フォームのデフォルト動作を停止する必要があります。そのためには、を返す必要があります。あなたの関数で

ここでは、デモリンクenter link description here

<form action="#" method="POST" name="myForm" onsubmit="return yourFunctionName();"> 

    First Name:<input type="text" name="firstName" /><br /> 

    Last Name:<input type="text" name="lastName" /><br /> 

    <input type="submit" name="submit" value="Submit"> 

</form> 

<div id="result"></div> 

<script> 
    function yourFunctionName() 
    {   
     var firstName = document.forms["myForm"]["firstName"].value; 
     var lastName = document.forms["myForm"]["lastName"].value; 

     document.getElementById('result').innerHTML = "Your first name is <b>" + firstName + "</b> and your last name is <b>" + lastName + "</b>"; 

     return false; 

    } 
</script> 
3

は、次のような何か:ザ・が消える、つまり

<form onSubmit = "return submitForm()" name="myForm"> 
    First Name:<input type="text" name="firstName" /><br /> 
    Last Name:<input type="text" name="lastName" /><br /> 
    <input type="submit" value=" Submit " name="submit" /> 
    </form> 

<p id="para"> 

</p> 
<script> 
function submitForm() { 
    var firstName = document.forms["myForm"]["firstName"].value; 
    var lastName = document.forms["myForm"]["lastName"].value; 
    document.getElementById('para').innerHTML = "Your first name is " + firstName + " and your last name is " + lastName; 
    return false; 
} 
    </script> 

onSubmit = "return submitForm()"すなわちイベントにreturnを追加し、その終了

falseを返す関数を作るフォームを実行するためです提出すると、データの送信が妨げられます。チェックアウトthis demo

+1

これは、答えよりもスポット・ザ・ゲームのようなものです。あなたは何を変えましたか?なぜそれが違いを生むべきですか? – Quentin

+0

@Quentin回答の更新をご確認ください。 – SaidbakR

関連する問題