2016-07-14 27 views
0

我無法弄清楚爲什麼.value不起作用。我也試過.querySelector而不是.getElementById,但我一直在控制檯中得到未定義。無法通過.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

謝謝大家。大衛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後包含腳本。

相關問題