2016-07-14 61 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后包含脚本。