3

このテキスト フィールドが空かどうかを検出し、それに基づいてコードを実行したいと考えています。

質問:コードを 1 回だけ実行するにはどうすればよいでしょうか。focus

  • emptyまたはであるさまざまな状態not empty

さらに詳しく説明するには:

(これらの jsfiddle の最も重要な部分はコンソールに表示されます。)

  • これは、キーアップするたびにコードを実行するコードのjsfiddleです(私が望むものではありません。初期コードのみです。)。

    $('input').on("keyup", function() {
    
        var val = $(this).attr('value'),
            previous = $(this).prev();
    
        if ( val === '' ) {
            console.log('Empty');
        }
        else if ( val !== '' ) {
            console.log('Text');
        }
    
    });
    
  • これは、フォーカスごとにコードを実行するコードのjsfiddleです(これは、私が望むものに多少近いです)。

    まだ不足していて、私がやり遂げることができないように見えるのは、基本的に、その1つのフォーカス中に状態が変化するたびに、コードをもう一度実行することです。どうすればそれができますか?

    $('input').on("focus", function() {
    
        $('input').one("keyup", function() {
    
            var val = $(this).attr('value'),
                previous = $(this).prev();
    
            if ( val === '' ) {
                console.log('Empty');
            }
            else if ( val !== '' ) {
                console.log('Text');
            }
    
        });
    
    });
    
4

2 に答える 2

1

ZURB の jQuery Text Change というプラグインを使用する必要があります。必要なものはすべて揃っています。また、「hastext」および「notext」と呼ばれるトリガー アクションもあります。以下をご覧ください。

http://www.zurb.com/playground/jquery-text-change-custom-event

そこにはデモもあります。

私はあなたのためにこれを作りました(そのプラグインを使用して)。

ライブデモ:

http://jsfiddle.net/oscarj24/UtwNz/

お役に立てれば :-)

于 2012-05-20T15:31:42.643 に答える
0

フィールドの値を保持し、値の状態が変化した場合にのみトリガーすることができます: http://jsfiddle.net/xk6A5/9/

于 2012-05-20T15:33:52.753 に答える