2016-09-02 4 views
0

私はフォームタグに埋め込まれた入力ボックスの値を取得しようとしています。フォーム内の入力値はどのようにして得られますか?

たとえば、これはうまく動作します。

<div> 
    <label>First Name</label> 
    <input id="firstName" type="text" required /> 
</div> 
<button type="submit" onclick="getName()">Submit</button> 

<script type="text/javascript"> 
    function getName() { 
     var name = document.getElementById('fistName').value; 
     console.log(name); 
    } 
</script> 

これは、送信ボタンがクリックされたときにコンソールに入力される値を出力します。しかし、私はそれを以下のような形で置くと何も返されません。

<form> 
    <div> 
     <label>First Name</label> 
     <input id="firstName" type="text" required /> 
    </div> 
    <button type="submit" onclick="getName()">Submit</button> 
</form> 

フォームタグに保護機能が追加されていますか?フォーム内の入力タグから値を取得するにはどうすればよいですか?

+5

'fistName'は' firstName'と等しくありません – Li357

+1

フォームを送信するということは、フォームを送信することを意味するので、event.preventDefault()を追加するか、ボタン上でタイプsumbitを実行しないでください。 trun js、何も提出しない。 – Shilly

+0

フォームをお持ちの場合は、送信をクリックすると送信され、アクションがない場合は同じページが開きます。 – jcubic

答えて

4

それは何も

はい、それはありませんを返しません。

しかし、はフォームを送信しているため、ページもすぐに更新され、最初からやり直しています。

フォームは何も保護していません。どちらの場合も、コードはまったく同じことを行っています。しかし、2番目のケースでは、formは物理的に結果を見るまでに何か他のことをしています(ページを読み込む)。

+0

どういうわけか私はそれが右コンソールにログインするべきだと信じています.. –

+0

彼はpreventDefaultイベント、彼の機能を呼び出すことができ、送信をトリガします。かなり悪いトリックですが、動作する –

+1

@NivasDhina多分分割秒です。あなたがそれを保存することを選択しない限り、ページを再読み込みすると通常は消去されます。 – j08691

0

ボタンsubmit型のボタンは、ページをリフレッシュします。また、コンソールがクリアされます。したがって、出力は行われますが、すぐにクリアされます。ボタンの種類を「ボタン」に変更してみてください。その後、ページが更新されず、出力が表示されます。

関連する問題