javascript没有获得输入框的值

时间:2011-04-20 14:42:40

标签: javascript textbox getelementbyid

我似乎在将输入框的值传递给我的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>

我知道按钮本身正在工作,因为它可以在没有违规代码的情况下激发我的其余代码 - 但是当我在顶部取消注释那个小块时,它什么也没做。 (没有错误等)

对那个人的任何帮助都会很热!谢谢:))

更新

我现在有了它的工作!非常感谢所有的帮助!!

5 个答案:

答案 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 );

或者如果它是一个多值数组,你可以循环它以获取值。