web-dev-qa-db-ja.com

jQueryはフォーカスに入力テキストをクリアします

私はこのjQueryスクリプトを持っています:

_$(document).ready(function() {
    $(':input:enabled:visible:first').focus();
    $('.letters').keyup( function() {
        var $this = $(this);
        if($this.val().length > 1)
            $this.val($this.val().substr(0, 1));
            $(this).next('input').focus();
        });
});
_

ページの読み込み時に最初の_input='text'_フィールドにフォーカスが設定されます。ユーザーが文字を入力すると、次の入力フィールドにフォーカスが移動します。また、各フィールドで許可される文字数(現在は1文字)も制限されます。

フォーカスのある入力フィールドの現在の値をクリアすることは可能でしょうか。ユーザーがカーソルをクリックしてフィールドにフォーカスを合わせるときと、$(this).next('input').focus();が次の入力フィールドにフォーカスを設定するときの両方。

また、アルファベット文字のみを許可するように文字を検証することは可能ですか?

10
David

入力をフィルタリングするには、

​$('input').on('keydown', function(e) {
    if( !/[a-z]|[A-Z]/.test( String.fromCharCode( e.which ) ) )
        return false;
});​​​​​​​​

clickfocusの入力フィールドをクリアするには、

$('input').on('click focusin', function() {
    this.value = '';
});

現在の形式でフォーカスされていない入力コントロールをクリックすると、このイベントが2回発生することに注意してください。

デモhttp://jsfiddle.net/xbeR2/

14
jAndy

あなたの焦点の質問に答えるために、はい、あなたはそれをすることができます:

$("input").focus(function() {
  this.value = "";
});

唯一の許可文字の質問に答えるために、これは beenaskedbefore です。

9
Jason Towne

これを使って

$( document ).ready(function() {
  var search_text_s = "WYSZUKAJ";

  // author ZMORA
  // search input focus text
  $("#searchClear").focus(function() {
    if(this.value == search_text_s){
      this.value = "";
    }
  }).blur(function() {
    if(this.value != search_text_s){
      this.value = search_text_s;
    }
  });
});
0
ZMORA