2016-07-14 21 views
0

なぜ値が機能しないのか分かりません。また、.getElementByIdではなく.querySelectorを試しましたが、コンソールでは定義されていません。.valueで入力から値を取得できません

var submit = document.querySelector('#submit'); 
 
var name = document.getElementById('ship-name'); 
 

 
submit.onclick = function() { 
 
    console.log(name.value); 
 
};
<div class="box"> 
 
    <h2>Where do you want your stuff sent?</h2> 
 
    <label for="ship-name"> 
 
    <input class="full text-input" id="ship-name" type="text" placeholder="Name" required> 
 
    </label> 
 
    <label for="ship-add-1"> 
 
    <input class="full text-input" id="ship-add-1" type="text" placeholder="Address Line 1" required> 
 
    </label> 
 
    <label for="ship-add-2"> 
 
    <input class="full text-input" id="ship-add-2" type="text" placeholder="Address Line 2" required> 
 
    </label> 
 
    <label for="ship-add-3"> 
 
    <input class="full text-input" id="ship-add-3" type="text" placeholder="Address Line 3" required> 
 
    </label> 
 
    <label for="ship-4"> 
 
    <input class="full text-input" id="ship-add-4" type="text" placeholder="Address Line 4" required> 
 
    </label> 
 
</div>

+1

IDは 'submit'の要素はどこですか? – j08691

+3

グローバルスコープで 'name'という名前の変数を作成することはできません。これは、常に文字列になる 'window.name'への参照になります。 –

+0

私はSOでスニペットを実行すると、ヌルのプロパティ 'onclick'を設定できないというエラーがスローされます。これは何か関係がありますか? – Zac

答えて

0

ありがとうございました。 David Hの答えが問題を解決しました。変数名を別のものに変更しただけで機能しました。彼はあなたがグローバルスコープで名前と呼ばれる変数を持つことができないということは間違いありませんでした。

-2

あなたは試したことがありますか?

var name = $('#ship-name').val(); 

そして

console.log(name); 
+1

jqueryについてではありません。 –

+0

ボタンのidプロパティが「submit」に設定されていますか? –

+0

ええ、ボタンが機能していて、クリックが認識されています。 – radgokart

0

変更あなたの.jsファイル内のコードはすべき:

document.getElementById('submit').onclick = function() { 
console.log(document.getElementById('ship-name').value); 
} 

あなたがグローバル空間を悪用されたコメントで述べたように。

また、参照しているHTMLの後にスクリプトを含めてください。

関連する問題