2014-01-30 4 views
1

텍스트 입력에서 값을 가져 오려고했지만 어떤 이유로 작동하지 않습니다.JS : 입력의 .value가 빈 문자열을 반환합니다 (비어 있지 않은 경우)

기본적으로 텍스트 입력이 있습니다. 사용자가 입력 내용을 입력하면 .value 속성이 변경 될 것으로 예상됩니다 (크롬에서 사용하는 것으로 나타남). 클릭하여 저장하고 JSON 출력을 읽으면 빈 문자열이 반환됩니다.

다음
<input id="eventName" name="efrm" type="text" value="" /> 
<button type="button" id="okEvent">Save Event</button> 

당신이 볼 필요가있을 JS입니다 : 여기

이 비트에 대한 HTML의

document.querySelector("#okEvent").addEventListener("mousedown", applyEvent(event), false); 

function applyEvent(event) { 
    var eventName = document.querySelector("#eventName").value; 

    event.data = { 
     name: eventName, 
     img: null, 
     type: 1, 
     fov: 0, 
     orientation: 1, 
     trigger: 1 
    }; 
} 

json으로 출력이라고 그 event.data 개체의 이름 속성 하지만 빈 문자열입니다. 나는 여기서 무슨 일이 벌어지고 있는지 이해하지 못하고있다.

+0

적어도 즉, 이벤트는 전역 변수입니다. applyEvent 함수에서 이벤트를 사용하면 전역 변수를 마스킹합니다. 변수 이름을 변경해야합니다. – Bindrid

답변

1
당신은 즉시 applyEvent를 호출하고 ( undefined 인) addEventListener반환 값을을 통과하는

. 입력 요소에 아직 그 값이 없으므로 .value은 빈 문자열을 반환합니다.

대신 함수를 전달합니다

....addEventListener("mousedown", function() { 
    applyEvent(event); 
}, false); 

(event 코드에서 어디에서 오는 모르겠어요,하지만 난 그게 사용자 지정 개체 가정, 하지 실제 이벤트 객체).

+0

예, 이벤트는 내 맞춤 개체입니다. 이 코드를 정말 빨리 테스트하겠습니다. – ndugger

+1

예, 작동했습니다! 고맙습니다. 스택 오버플로는 대답을 받아 들일 때까지 7 분을 기다려야한다고 말했지만, 그 때가되었습니다. 감사! – ndugger

관련 문제