2012-06-30 5 views
0

텍스트 상자간에 텍스트를 이동하려고했지만 실패했습니다. 이 접근 방식에 어떤 문제가 있습니까?자바 스크립트를 사용하여 텍스트를 이동하거나 저장합니다.

<html> 
<script> 
function fill(){ 
document.getElementById("text2").value = document.test.text1.value 
} 
</script> 

<form name="test" id="test"> 
<input type="text" name="text1" id="text1"/> 
<input type="text" name="text2" id="text2" value=""/> 
<button name="b" onclick="fill()">move</button> 
</form> 
</html> 
+1

왜 다른 방법으로 다른 텍스트 상자에 액세스합니까? 또한 - 자바 스크립트 오류 콘솔은 무엇을 말합니까? – Oded

+0

당신은 이것이 문제를 야기한다고 생각합니까, 제가 원했던 것은 일부 텍스트를 데이터베이스에 보내기 전에 저장하는 것입니다. 콘솔을 사용하지 않고 친숙하지 않습니다. 더 설명 해주십시오. 덕분에 – solidfox

+1

수도 있습니다. 첫째, 일관성을 유지하십시오. 그런 다음 브라우저에서 가져 오는 오류를 확인하십시오. – Oded

답변

1

이유는 단추가 양식을 제출하는 것입니다. 그럴 필요가 없습니다. 또한, 인라인 (일명 DOM 영) 이벤트 선언을 방지하고 형식적으로 이벤트를 바인딩 :

function fill(evt){ 
    document.getElementById("text2").value = document.test.text1.value; 
    evt.preventDefault(); 
} 
document.addEventListener('DOMContentLoaded', function() { 
    document.querySelector('#test button').addEventListener('click', fill, false); 
}, false); 

을 당신이 나이의 IE를 지원해야하는 경우를 조정할해야 할 수도 있습니다, 그래서 내가, 거기에 몇 가지 현대적인 방법을 사용하고, 그러나 당신은 아이디어를 얻는다.

채우기 기능이이 단추에만 사용되고 다른 곳에서는 사용되지 않는 경우 이름으로 정의하고 참조하는 대신 여기에서 수행하는 것처럼 이벤트 바인딩에서 직접 익명의 함수로 참조 할 수 있습니다 . 그 이상에 대해 "익명의 함수"를 찾으십시오.

+0

대단히 감사합니다. – solidfox

관련 문제