2017-11-17 19 views
0

何か変わって、私は困惑しています。jqueryで空の入力フィールドにプレースホルダの値を取得しますか?

私はプレースホルダと、入力フィールド、例えばある場合:入力が残っている場合、私は常にユーザの入力をつかむ、またはすることができました

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

、などのjQueryを使ってプレースホルダ値を:

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

大したことはありません。 jquery .val()を使用して常にトリックをしました。次に、空の入力がプレースホルダー値をキャプチャしていなかった以前の作業アプリで、コード出力エラーが発生し始めました。

これを説明するjavascriptエンジンで何か変更がありましたか?または、入力フィールドが空の場合にプレースホルダ値を取得する新しい方法がありますか?

$('#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

また、プレースホルダは '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ベースのアプリケーション(少なくとも趣味のコーダーとして)にこのステップを踏む必要はありませんでした。私はchrome、FF、IEを 'val()'だけで使用しました!何がありますか? – user1837608

+0

いつもjQuery 3を使っていましたか?メソッドが更新された可能性があります。 – isherwood

関連する問題