2017-11-17 25 views
0

뭔가 이상하고 나는 곤란합니다.jquery를 사용하여 빈 입력 필드에서 자리 표시 자의 값을 가져 옵니까?

나는 자리로 입력 필드, 예를 들어있을 때 : 입력 남아 있다면 항상 사용자 입력을 잡아, 또는 할 수있었습니다

<input id="box1" placeholder="not applicable"> 

같은 jQuery로 자리 표시 자 값을 :

var text = $('#box1').val(); 

큰 문제가 아닙니다. jquery .val()을 사용하면 항상 트릭을 만들었습니다. 그런 다음 빈 입력이 자리 표시 자 값을 캡처하지 않는 이전에 작동하는 응용 프로그램에서 일부 코드 출력 오류를보기 시작했습니다.

무엇이 자바 스크립트 엔진으로 변경 되었습니까? 또는 입력 필드가 비어있는 경우 자리 표시 자 값을 가져 오는 새로운 방법이 있습니까?

$('#done').on('click', function(){ 
 
\t if($('#box3').val() == ''){ 
 
      var box3 = $(this).data('placeholder'); 
 
     } else { 
 
     var box3 = $('#box3').val(); 
 
     } 
 
    $('#output').val(box3); 
 
}); 
 

 
// Clicking the button doesn't capture the placeholder value if empty?
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
 

 
<input id="box3" placeholder="not applicable"> 
 
<br><br> 
 
<button id="done"> 
 
Done 
 
</button> 
 
<br><br> 
 
<textarea id="output"></textarea> 
 
<br><br> 
 
<p> 
 
Why doesn't the button click capture the value of the placeholder in this instance, using jquery 3.1.1? 
 
</p>

+1

당신 * 원하는 * 값이 비어 있으면 자리 표시 자 텍스트를 얻는 방법? 내 경험에 비추어 볼 때 IE가 아닌 비어있는 경우 대부분의 브라우저에서 자리 표시 자 값을 반환하지 않습니다. 일부 사용자는 IE를 사용하고 제출시 자리 표시 자 텍스트를 보내기 때문에 일부 앱에서 자리 표시자를 명시 적으로 무시해야했기 때문에이 점만 기억합니다. – Taplar

+1

또한 placeholder는'data' 필드가 아니며'attr'입니다. – Taplar

+0

예, UI 함수를 개선하기 위해 값이 비어 있으면 자리 표시자를 가져 오려고합니다. 사용자가 지정하거나 업데이트 할 필요가없는 경우에 좋은 기본값으로 사용됩니다. 'value ='로 기본값을 설정할 수 있지만, 사용자는 입력을 지우고 재 입력하는 번거 로움을 겪어야합니다. 자리 표시자를 사용하면 즉시 집중하여 입력 할 수 있습니다. – user1837608

답변

0

사용 attr('placeholder') :

이 예를 참조하십시오. 또한 if 문 내에서 this을 사용하는 것이 잘못되었습니다. 그것은 click 함수의 주제를 참조했습니다.

$('#done').on('click', function(){ 
 
\t if($('#box3').val() == ''){ 
 
      var box3 = $('#box3').attr('placeholder'); 
 
     } else { 
 
      var box3 = $('#box3').val(); 
 
     } 
 
    $('#output').val(box3); 
 
}); 
 

 
// Clicking the button doesn't capture the placeholder value if empty?
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
 

 
<input id="box3" placeholder="not applicable"> 
 
<br><br> 
 
<button id="done"> 
 
Done 
 
</button> 
 
<br><br> 
 
<textarea id="output"></textarea> 
 
<br><br> 
 
<p> 
 
Why doesn't the button click capture the value of the placeholder in this instance, using jquery 3.1.1? 
 
</p>

+0

고마워, 그 완벽하게 작동합니다. 하지만, 필자가 작성한 많은 jquery 기반 응용 프로그램에서이 단계를 밟아 본 적이 없었습니다 (적어도 애호가로서). 나는 크롬, FF 및 IE를'val()'을 사용하여 동일한 효과를 사용했습니다! 뭐라 구요? – user1837608

+0

항상 jQuery 3를 사용 했습니까? 어쩌면이 방법이 업데이트되었을 수도 있습니다. – isherwood