2012-03-19 2 views
35

다음 jQuery 코드가 작동하지 않는 이유를 알아낼 수 있습니까? 사용자 입력에서 정수를 반환하고 싶습니다.parseInt with jQuery

var test = parseInt($("#testid")); 

감사합니다. & 안녕히 계십시오!

+5

정의주세요 "아무튼이 '일하지 마.' 당신은 어떤 일이 일어날 것으로 예상합니까, 그리고 실제로 일어나는 일은 무엇입니까? –

답변

104
var test = parseInt($("#testid").val(), 10); 

타겟팅 할 입력의 value을 알려 주어야합니다.

또한 항상 parseInt에 두 번째 인수 (기수)를 제공하십시오. 너무 영리 해 지려고하지 않으면 자동 감지되어 예기치 않은 결과가 발생할 수 있습니다.

제공 10은 기본 10 숫자를 원한다고 가정합니다.

+12

'parseInt'를 호출 할 때는 항상 기수를 지정해야합니다. –

+0

parseInt의 호환성은 어떻게됩니까? –

4
var test = parseInt($("#testid").val()); 
+2

'parseInt'를 호출 할 때는 항상 기수를 지정해야합니다. –

13

두 가지 문제 :

  1. 당신은 parseInt 그것에 toString를 호출하고 다시 "[object Object]"을 얻을 것이다, 당신이 원하는하지 않은, parseInt에 요소의 jQuery를 래퍼를 통과하고 있습니다. val 또는 text 또는 요소 (요소에 따라 다름)를 사용하여 원하는 문자열을 가져와야합니다.

  2. parseInt에 사용할 기수 (숫자 기준)를 알려주지 않으므로 parseInt에서 사용할 기수를 추측 할 때 이상한 결과를주는 이상한 입력이 될 수 있습니다.

수정 요소가 양식 필드 인 경우 요소가 다른 것입니다 당신이 그것을 내의 텍스트 사용할

//        vvvvv-- use val to get the value 
var test = parseInt($("#testid").val(), 10); 
//         ^^^^-- tell parseInt to use decimal (base 10) 

수정하는 경우 :

//        vvvvvv-- use text to get the text 
var test = parseInt($("#testid").text(), 10); 
//          ^^^^-- tell parseInt to use decimal (base 10)