2016-11-28 8 views
0

console.logにsubmitしてテストする際にフォーム値を出力しようとしました。しかし、未定義のメッセージを得る。私がどこに間違っているのか分かりません。私はStackOverflowのさまざまな答えを見てきましたが、まだ運がありません。javascript - フォーム値をconsole.logに出力して未定義のエラーが発生しました

HTML

<form class="form-inline"> 
    <label class="required">* required </label> 
    <div class="form-group"> 
    <input type="text" class="form-control inputArea" id="fullname" placeholder="Full Name *"> 
    </div> 
    <div class="form-group"> 
    <input type="email" class="form-control inputArea" id="email" placeholder="Email *"> 
    </div> 
    <div class="form-group"> 
    <input type="tel" class="form-control inputArea" id="phn" placeholder="Phone Number *"> 
    </div> 
    <button type="submit" class="btn btn-default submit">Submit</button> 
</form> 

はJavaScript

<script> 
    var formInput = document.querySelectorAll('#fullname, #email, #phn'); 

    document.querySelector('form.form-inline').addEventListener('submit', function (e) { 
     e.preventDefault(); 
     console.log(formInput.value); 
    }); 
</script> 

答えて

0

forminputプロパティを持っていない、それは複数のobjectsを持つ単一のオブジェクトではありませんので、あなたが未定義になっている - ここでは、コードですvalue

あなたは値が入力される前に、フォームを照会しているような

console.log(formInput[0].value); 
+0

働いたスーパー!ありがとう:) – ross

+0

@ross答えとしてマークしてください。 – Mairaj

0

の下にインデックスで値を得ることができます。スクリプトの最初の行は、イベントリスナー内にある必要があります。

<script> 
    document.querySelector('form.form-inline').addEventListener('submit', function (e) { 
     e.preventDefault(); 
     var formInput = document.querySelectorAll('#fullname, #email, #phn'); 
     console.log(formInput.value); 
    }); 
</script> 

値はページロード時にクエリされています。値を確認する前にユーザーが送信するまで待つ必要があります。

+0

値がページ上に取得されていません。オブジェクトのみがページの読み込み中になります。 – Mairaj

+0

ありがとう@Calteran :) Leopardのソリューションが機能しました! :) – ross

0

これを試すことができます。それが役に立てば幸い!

function myFunction(){ 
 
    var a = document.getElementById("fullname").value; 
 
    var b = document.getElementById("email").value; 
 
    var c = document.getElementById("phn").value; 
 

 
    console.log(a); 
 
    console.log(b); 
 
    console.log(c); 
 

 
    return false; 
 
}
<form class="form-inline" onsubmit = " return myFunction()"> 
 
    <label class="required">* required </label> 
 
    <div class="form-group"> 
 
    <input type="text" class="form-control inputArea" id="fullname" placeholder="Full Name *"> 
 
    </div> 
 
    <div class="form-group"> 
 
    <input type="email" class="form-control inputArea" id="email" placeholder="Email *"> 
 
    </div> 
 
    <div class="form-group"> 
 
    <input type="tel" class="form-control inputArea" id="phn" placeholder="Phone Number *"> 
 
    </div> 
 
    <button type="submit" class="btn btn-default submit">Submit</button> 
 
</form>

+0

働いてくれてありがとう@HenryDev!しかし、Leopardが最初に答えたので、私は彼の答えに印を付けなければならないでしょう。歓声メイト :) – ross

関連する問題