2014-10-29 7 views
0

입력 값을 얻기가 매우 쉽습니다.Jquery 입력 값이 올바르게 표시되지 않습니다.

코드는 다음과 같습니다

var $a = $('.custom-amount').val(); 
$('.custom-amount').on('change', function() { 
    alert($a) 
}) 

그리고 내 입력 :

<div class='custom-amount'> 
    <input placeholder='Custom Amount' type='text-area'> 

을 어떤 이유로, 내 경고가 비어 있습니다. 아무도 무슨 일이 잘 보이지 않니?

답변

2
는, 예를 $('.custom-amount input')로 선택을 변경하고 변경 이벤트가 시작됩니다 후 값을 가져

:에 마크 업 변경

$('.custom-amount input').on('change', function() { 
    var a = $(this).val(); 
    alert(a); 
}); 

지금

, 당신은 작동하지 않습니다 div의 값을 얻기 위해 노력하고 있습니다. 입력 값을 가져와야합니다.

편집 : 또한 textarea을 표시하려고합니다. 이 도움이 될 수 ...이 대체이와

<input placeholder='Custom Amount' type='text-area'> 

...

<textarea placeholder='Custom Amount'></textarea> 

을보십시오 : 귀하의 DIV 값이없는

http://jsfiddle.net/d648wxry/

+0

오. 그래, 그거야. 좋은 캐치; 나는 내 대답을 업데이트 할 것이다. –

+0

+1'this '를 사용하는 다른 것들보다 – Kypros

+0

그리고 -0.25 변수 이름에서 $ 기호를 복사/붙이기 위해서. 그래도 문제가 해결되었습니다 :) – Kypros

0

우선, change 함수 외부의 $a에만 할당합니다. 코드를 더 잘 정렬하면 더 명확 해집니다 (게시물에 대한 편집 참조). 이 그것을 할 올바른 방법입니다 : 모든

$('.custom-amount').on('change', function() { 
    var $a = $('.custom-amount').val(); 
    alert($a) 
}); 

둘째, 클래스 custom-amount 대신 <input> 요소의 <div>에 할당됩니다. <div>이 아닌 <input> 요소를 선택해야합니다.

<div> 
    <input placeholder='Custom Amount' type='text-area' class='custom-amount'> 
</div> 
+0

변수 이름에'$'을 사용하는 것이 유효합니다. 내 목표는 OP의 코드를 최소한으로 변경하여 변경 사항을 이해하기 쉽도록하는 것이 었습니다. (그래서 두 번째 jQuery 선택기를'$ (this) '로 변경하지 않기로 결정했다.) –

1

원인. 코드를 다음으로 변경하십시오.

var $input = $('.custom-amount input'); 
$input.on('change', function() { 
    var $a = $input.val(); 
    alert($a) 
}) 
+0

@Kypros 원하는 경우 변수에'$'를 추가 할 수 있습니다. 나를 위해 DOM 객체 또는 다른 유형의 값을 포함하는 변수를 쉽게 식별 할 수 있습니다. '$ a'에 관해서는 저자가 쓴대로 남겨 두었습니다. –

+0

'$ input'에 대해서는 "잘 보이는"것이지만'$ a'에 대해서는별로 의미가 없지만 여러분이 의미하는 바를 얻습니다. – Kypros

2

문제는 매우 간단합니다. div 요소의 값을 얻는 중입니다. 대신 입력 요소의 값을 검색하여 'custom-amount'클래스를 입력에 추가해야합니다.

또한 이벤트 내부에서 val() 메소드를 실행하여 값을 업데이트해야합니다.

var $a = $('.custom-amount'); 

$('.custom-amount').on('change', function() { 
    alert($a.val()); 
}); 
관련 문제