2017-10-14 1 views
0

안녕하세요 저는 JS에 익숙하며 도움을받을 수 있습니다.버튼 클릭하지 않고 클릭 이벤트 트리거

그래서 기본적으로 텍스트 상자의 텍스트를 제출 버튼 이벤트에서 inputFromText이라는 텍스트로 보내려고합니다.하지만 전자 메일을 통해 HTML 창을 열 때 함수가 트리거되기 전에 아무런 반응이 없습니다. 나중에 버튼을 클릭하면

어떻게 이런 일이 발생하지 않도록 할 수 있습니까?

function inputFromText(e) { 
    e.preventDefault(); 
    ... 
} 
+0

[addEventListener]의 가능한 복제본은 나 없이도 함수를 호출합니다. (https://stackoverflow.com/questions/16310423/addeventlistener-calls-thefunction-without-me-even-asking-it-to) – DocMax

+0

함수에 대한 참조를'addEventListener'의 두 번째 매개 변수로 전달해야합니다. 서면으로, 함수를 호출하고 반환 된 값을 대신 전달합니다. 더 자세한 답변을 보려면 링크 된 질문을보십시오. – DocMax

답변

0

난 당신이 함수로 클릭 이벤트 처리기를 포장 할 필요가 믿는, 그래서 라인 :

<body> 
    <form> 
    <div class="form-group"> 
     <textarea class="form-control" rows="5" id="txa_trainingText"></textarea> 
     <button type="submit" class="btn btn-default" id="btn_submit">Submit</button> 
    </div> 
    </form> 
    <script> 
    const trainingText = document.getElementById("txa_trainingText").value; 
    document.getElementById("btn_submit").addEventListener("click", inputFromText(trainingText)); 
    function inputFromText(text) { 
     ... 
    } 
    </script> 
</body> 

나는 텍스트 인수없이 기능을 사용할 때 하나의 서면에 의한 문제를 해결할 수 있다는 것을 발견 읽을 것입니다 :

document.getElementById("btn_submit").addEventListener("click", function() { inputFromText(trainingText)}); 
+0

이렇게하면 처음부터 바로 트리거되는 것을 방지 할 수 있지만 지금은 e를 호출하려고 할 때 발생합니다. 지. 'console.log (123);' 함수에서. "123"짧은 시간에 팝업하지만 즉시 이상한 콘솔에서 삭제되면 ... – AstronAUT

+0

사실, 당신은 @santoshkumar 코멘트를보고 단추 유형을 "submit"대신 "button"으로 변경하고 싶다고 생각합니다. . . . 그렇지 않으면 콘솔 출력을 볼 때 양식이 서버에 다시 게시 될 때 (즉, 제출 버튼 동작) 사라집니다. 제출 버튼이 정말로 필요한 경우 console.log를 수행 할 수 있으며 경고를 클릭하면 console.log를 검토 할 수있는 경고 메시지가 표시 될 때까지 페이지 실행이 일시 중지됩니다. – BlissRage

0

그냥 =

버튼 유형 = "버튼"을 "제출"버튼 유형을 변경