2013-08-23 3 views
0

기본적으로 사용자가 양식에 입력 한 내용을 가져 와서 JSON으로 일부 물건을 처리하는 서블릿으로 보내는 작은 자바 스크립트가 있습니다. 양식 자체를 제출하기 전에 일종의 미리보기 기능입니다. 이 스크립트는 Chrome에서 작동하지만 Firefox에서 페이지의 숨겨진 div를 올바르게 구문 분석하지 못합니다. JS에 양식의 필드 수를 알려줍니다.Javascript ParseInt()가 Firefox에서 작동하지 않습니다.

JS

function send_formdata() { 
    var numGenes = parseInt(document.getElementById("numGenes").textContent); 
    alert(numGenes); 
    var jsonObj = []; 
    for (var i = 0; i <numGenes; i++) { 
     if (document.getElementById("c"+i).value == "") { 
      alert("Please fill out all fields before checking tax model."); 
      return; 
     } 
    jsonObj.push({"value" : document.getElementById("c"+i).value}) 
    } 

는 ....

는 I 디버그로 경고()를 첨가. 크롬에서 경고는 Firefox에서 "NaN"이라고 읽는 "25"라고 읽습니다.

페이지의 일부가 포착되고 : 파이어 폭스가 여기에 작동하지 않는 이유에

<div id="numGenes" style="display: none">25</div> 

어떤 아이디어? 오류가 발생하지 않으면 스크립트는 단순히 서버에 빈 배열을 보내는 것으로 끝납니다.

+0

파이어 폭스에서 당신을 얻을 textContent'? –

+0

내가 코드를 사용해도 제대로 작동합니다. ParseInt는 FireFox에서 25 개를 표시합니다. – dcaswell

답변

0

위의 코드는 기능을 올바르게 종료하기 위해 끝에 "}"이 하나만 누락되었습니다. 그렇지 않으면 Firefox에서 작동합니다. 후속 document.getElementId()는 실패하지만 id가 c0, c1 등인 DOM 요소가 있다고 가정합니다.

+0

기능을 조기에 잘라 버렸습니다. JSON 객체를 서블릿에 보내는 비트가 있습니다. 그것이 당신을 위해 일하는 것이 흥미 롭습니다. 전체 페이지의 컨텍스트에서 문제를 찾는 데 어려움이 있는지 궁금합니다. – agilesynapse

1

두 번째 매개 변수로 radix을 전달해야합니다. Click here을 참조하십시오.

이처럼 사용해야합니다.

`document.getElementById를 ("numGenes")를 무엇

var numGenes = parseInt(document.getElementById("numGenes").textContent, 10);

관련 문제