问题是我有一个带有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
由于
答案 0 :(得分:5)
永远不要试图通过使用id
来访问元素,就好像它是一个全局变量一样。
有些浏览器使这成为可能(作为Internet Explorer 4的非常难看的遗产),但它不可靠。
在这种情况下,location
是the 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());
});