2017-03-16 17 views
0

入力フィールドをフォームフィールドにラップすると、コンソールログが値を印刷できない理由を理解できますか?JavaScriptを使用してフォーム内の入力フィールドの値を取得する

HTML:

<form> 
     <input id="formEntry" type="text"> 
     <button id="btn-3">Add Custom Line</button> 
    </form> 

はJavaScript:

var addCustomLine = function(){ 
     var customLine = document.getElementById("formEntry").value; 
     console.log(customLine); 
} 

document.getElementById("btn-3").addEventListener ("click", addCustomLine, false); 
+0

私にとってうまく動作します。 –

+0

"フォームでラップすると失敗します"という意味はどうですか? '

'タグを省略するとコードが動作すると言っていますか? – Bergi

答えて

2

ボタンタイプを指定しないと、デフォルトで親フォームが送信されます。型を明示的に "ボタン"に設定することで、この動作を防ぐことができます。

<button type="button" id="btn-3">Add Custom Line</button> 
+0

ありがとう! –

0

<form><button>イベントそのすべてのエフェクトを再ロードし、無効にするページが発生しますデフォルトで形成を、提出します。ハンドラが持っていた。ただし、その動作を防ぐことができます。

function addCustomLine(event) { 
    event.preventDefault(); 
    … 
} 

あなたが通常の形ではなく、ボタンのclickイベントのsubmitイベントでそのハンドラをインストールすることをお勧めします。

+0

ご協力いただきありがとうございます! –

関連する問題