我似乎在将输入框的值传递给我的javascript中的任何其他内容时遇到了麻烦。 它没有产生任何错误 - 我记得在某个地方读到如果文档没有完成加载你会遇到问题 - 但我很确定它有!
有问题的代码如下javascript:
var address = getElementById(addyInput).value;
document.getElementById('add').innerHTML = address;
并在HTML中
<form>
<input name="addyInput" placeholder="Don't forget postcode!">
</form>
<button id="start" onclick="initialize()">Start!</button>
<p>Address Test
<div id="add"></div>
</p>
我知道按钮本身正在工作,因为它可以在没有违规代码的情况下激发我的其余代码 - 但是当我在顶部取消注释那个小块时,它什么也没做。 (没有错误等)
对那个人的任何帮助都会很热!谢谢:))
更新
我现在有了它的工作!非常感谢所有的帮助!!
答案 0 :(得分:3)
您的表单需要如下所示(添加id属性):
<form>
<input id="addyInput" name="addyInput" placeholder="Don't forget postcode!">
</form>
Javascript的第一行需要看起来像这样(因为getElementById
期待ID而不是名称)。
var address = getElementById('addyInput').value;
此外,getElementById
期望id参数是一个字符串(因此是引号)。如果你在没有引号的情况下传递addyInput
,它会尝试将addyInput
解释为具有未定义值的变量,并且不会获得所需的DOM元素。
或者,如果您使用jQuery,则可以将表单标记保持原样并将Javascript更改为:
var address = $('input[name=addyInput]').val();
答案 1 :(得分:2)
确保在输入上指定和id
。您只有name
。
答案 2 :(得分:0)
您需要将id“addyInput”添加到表单输入中,而不仅仅是名称。
答案 3 :(得分:0)
getElementById需要一个字符串。
var address = getElementById('addyInput').value;
如果你把它直接放在头部的脚本部分,那么你会遇到问题,因为页面没有完全加载,但代码已经执行了。
当然,您应该像其他人已经说过的那样为输入元素定义一个id。
答案 4 :(得分:-1)
您得到的是一个数组,您需要将您的数组提取到一些可读数据中。尝试类似:
$value = array_shift( $yourarray );
或者如果它是一个多值数组,你可以循环它以获取值。