2016-08-19 2 views
0

버튼을 클릭 할 때 양식에서 변수를 가져온 다음 다른 기능을 처리해야합니다.버튼 기능 내부의 JQuery 변수

jquery.min.js:6 Uncaught RangeError: Maximum call stack size exceeded

가 여기에 jQuery의 :

$(document).ready(function(){ 
var value; 
var callMe = function(){ 
    value = document.getElementsByClassName("instr"); 
} 

$('#container :button').click(function(event){ 
callMe(); 
doAjax(value); 
}); 

}); 

더 JQuery와

는 오류입니다. 필요하다면 더 많은 것이 있습니다.

<div id="container" class="center"> 
<form> 
<label for="instr">Select Instrument</label> 
<select name="instr" id="instr" class="instr" value=""> 
<option value="WHCBOT">WHEAT-SRW - CHICAGO BOARD OF TRADE</option> 
<option value="WHMGE">WHEAT-HRSpring - MINNEAPOLIS GRAIN EXCHANGE</option> 
<option value="CCBOT">CORN - CHICAGO BOARD OF TRADE</option> 
<option value="OCBOT">OATS - CHICAGO BOARD OF TRADE</option> 
</select>  
<input id="button" type="button" value="Get Chart"> 
</form> 
<div id="response-container"> 
The chart will appear here.. 
</div> 
</div> 
+1

TheAjax 란 무엇입니까? –

+0

processData 함수도 제공하십시오. – Sergeon

+0

document.getElement ....의 출력이 값이 아니므로 요소를 반환합니다. $ ('. instr')을 사용해보십시오. 대신 val() – Developer

답변

1

귀하의 하드 코딩 테스트 'CCBOT', 문자열 값입니다

function doAjax(value) { 
    //var value , ajax; 
    var ajax;  
    //value = 'CCBOT'; // This variable works when hard coded. 

    //Pass the values to the AJAX request and specify function arg for 'done' callback 
    ajax = theAjax(value); 
    ajax.done(processData); 
    ajax.fail(function(jqXHR, textStatus, errorThrown) { 
      //Output error information 
    }); 
} 

다음은 HTML 양식입니다.

"라이브"테스트는 document.getElementsByClassName('instr') 인 HTMLCollection입니다.

HTMLCollection은 jQuery에서 기대하는 바가 명확하지 않기 때문에 예기치 않은 동작이 발생하고 그 결과는 jQuery의 깊이 내에서 발생하는 처리되지 않은 오류입니다.

jQuery는 형식 불일치를 특히 잘 처리하지 못합니다. HTML이 그렇듯이 매우 관대 해지기 때문에 (결국 HTML과 비슷합니다.) 결국 적절한 입력과 함께 잘 작동하므로 jQuery에서 오류가 발생하는 경우가 있습니다. 너는 그것을 잘못 전달했다.

는 찾으 셨나요?

value = $(".instr").val(); 

?

+0

완벽합니다. 감사합니다. 그리고 설명에 감사드립니다. 내가 "경고"를했을 때 "HTMLCollection"이라고했지만 그게 뭔지 몰랐습니다. 아직도 확실하지 않지만 이것은 미래에 나를 도울 것입니다. 다시 한번 감사드립니다. –