2016-10-12 2 views
-1

양식 제출시 my_function으로 전화합니다. 함수는 사용자가 입력 한 숫자에 대한 텍스트 파일을 my_input에서 찾습니다. 이 번호가 없으면이 함수는 경고를 표시하고 양식 제출을 중지해야합니다.Jquery 일반 자바 스크립트

내 문제 : 경고가 표시되지만 닫으면 양식이 제출됩니다. 내 문제는이 스레드와 비슷합니다 : How do I return the response from an asynchronous call?

거기에 해결책 중 하나는 일반 자바 스크립트에서 GET을 수행하는 것입니다. 누군가 제발 도와 드릴까요? 이것은 나에게 너무 앞서있다.

function my_function() { 
    $.get("http://www.example.com/file.txt", function(contents) { 
    var my_number = document.getElementById("my_input").value; 
    var hasString = contents.includes(my_number); 
    }); 
    console.log(hasString); // **ALWAYS RETURNS UNDEFINED** 
    if (hasString == false) { 
    alert('Number does not exist in text file!'); 
    return false; 
    } 
} 
+0

나는 jquery없이 get하는 방법, 내 코드를 묻는 중이다. – Malasorte

+0

링크 된 게시물의 메소드 중 하나를 시도 했습니까? 특히 함수에서 콜백을 매개 변수로 허용하는 것에 대한 부분이 있습니까? – showdev

+3

귀하가 나열한 글은 귀하의 질문에 대한 답변을 제공합니다. – Yoda

답변

0

hasString 번째 인수로서 $.get 제공 콜백 함수의 국소 변수이다. 이것이 상기 기능 외에서 정의되지 않은 이유입니다. 변수 선언을 바깥 쪽 범위로 옮기는 것만으로도 문제가 해결되지 않습니다. 어쨌든 hasString == false 콜백 함수가 실행됩니다 (get 요청이 완료 될 때 실행됩니다).

질문을 더 직접적으로 받기 : 동 기적으로 get 요청을 수행하거나 (코드를 사용하여 필요한 범위에서 변수를 올바르게 선언하십시오) 콜백 내에서만 get 요청으로 검색된 정보를 사용하도록 코드를 재구성하십시오. 자세한 내용은 the post @abc123 mentions을 참조하십시오.

관련 문제