2013-12-20 5 views
0

문제는 4 개의 텍스트 입력이있는 HTML 양식이 있고 자바 스크립트 함수에 제출하고 처음 3 개의 입력이 제대로 작동하지만 네 번째는 정의되지 않았기 때문입니다. 여기 HTML 형식의 요소가 자바 스크립트에서 정의되지 않았습니다.

는 중요한 코드 : 은 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> 

자바 스크립트 부분 : 나는 필드에 데이터를 입력하고 Enter 키를 제출하면

<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 개 값이 잘된다 하지만 네 번째는 "undefined"로 표시됩니다.

전체 파일을 볼 필요가있을 경우에 대비하여 여기에 대한 요점을 작성했습니다 : https://gist.github.com/anonymous/8052481

감사

답변

5

사용하여 DOM을 통해 요소에 액세스하려고하지 마십시오의 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에서 특별한 의미를 지닌 것을 입력으로 입력 할 수 있습니다. 출력을 어지럽히 지 않도록하십시오.

2

location (어드레스 개체) 미리 변수와 다른 방식으로 사용될 수 없다.

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

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

}); 
+0

감사합니다. 효과가 있지만 더 나은 솔루션을 제공하기 때문에 Quentin의 대답을 선택하겠습니다. – Niclassg

+0

제 영어는 "보다 유익한"해결책을 찾기에는 너무 나쁩니다. P – Krzysiek

관련 문제