HTML表单中的元素在Javascript中未定义

时间:2013-12-20 09:35:24

标签: javascript html

问题是我有一个带有4个文本输入的HTML表单,我将它提交给javascript函数,前3个输入正常工作但第4个输入未定义。

以下是重要的代码: HTML部分:

<form action="insertServer.php" method="post" id="insertServer">
Navn:       <input type="text" name="navn" id="navn">
Netid:      <input type="text" name="netid" id="netid">
Serverid:   <input type="text" name="serverid" id="serverid">
Location:   <input type="text" name="location" id="location">
<input type="submit" name="submitButton" class="button" id="submitButton" value="Indsend">
</form>
<div class="resultInsert"></div>

Javascript部分:

<script type='text/javascript'> //Add server
$("#insertServer").submit(function(event) {
event.preventDefault();

$("div.resultInsert").html("Location is:"+location.value+" navn is: "+navn.value);

});
</script>

当我在字段中输入数据并按提交时,前3个值就可以了,但第四个显示为“未定义”

如果你需要查看整个文件,我在这里创建了一个要点:https://gist.github.com/anonymous/8052481

由于

2 个答案:

答案 0 :(得分:5)

永远不要试图通过使用id来访问元素,就好像它是一个全局变量一样。

有些浏览器使这成为可能(作为Internet Explorer 4的非常难看的遗产),但它不可靠。

在这种情况下,locationthe standard location object而不是您的HTML元素。

使用getElementById,jQuery的选择器引擎或类似内容通过DOM获取元素。

var location = jQuery('#location').val();
var navn = jQuery('#navn').val();

$("div.resultInsert").text("Location is:" + location + " navn is: " + navn);

另请注意,我使用了text方法而不是html方法。有人可能会在输入中输入HTML中具有特殊含义的内容。不要让它打破输出。

答案 1 :(得分:2)

location(地址对象)是预定义变量,不能以其他方式使用。

$("#insertServer").submit(function(event) {
event.preventDefault();

$("div.resultInsert").html("Location is:"+$('#location').val()+" navn is: "+$('#navn').val());

});