1
<input id="edit-name" type="text" class="name"/>

テキスト内のカーソルフォーカスが文字を入力しなかったため、フォーカスが失われ、ヒントが表示されます(名前を入力してください)

テキストボックスにカーソルを合わせてから、テキストボックスに文字を入力すると、エラーメッセージが削除されます。

私のコード:

    $('#edit-name').focus(function(){
        if($(this).val()!=''){
        $('.error-message').remove();
        }
    });
    $('#edit-name').blur(function(){
        if($(this).val()==''){
            $('.error-message').remove();
          $('#edit-name').after('<span style="color:red;" class="error-message" >please enter the name!&lt;/span>'); 
        }


});

私のコードに何か問題がありますか?テキストボックスに文字を入力しましたが、カーソルが再びテキストにフォーカスしない限り、エラーメッセージは表示されたままです。

4

1 に答える 1

0

ぼかしを使用しています。つまり、入力ボックスに何も入力せずにそのままにしておくと、ツールチップが表示されます。しかし、あなたの質問はあなたがしたいことを述べています

テキスト内のカーソルフォーカスで文字が入力されていない場合は、ヒントを入力してください(名前を入力してください)

つまり、条件としても焦点を合わせる必要がありelseます。このようなものがあなたが探しているものです:

     $('#edit-name').on('focus change', function(){
        if($(this).val()!=''){
        $('.error-message').remove();
        } else { 
          // what you're doing in the blur function
        }
    });

入力ボックスにフォーカスするとすぐに、ツールチップが表示されます。change何かを入力するとすぐに、ツールチップが消えることを保証します。

PS-私があなたを間違えた場合を除いて、あなたは本当にツールチップをぼかしで表示したいのです。その場合、この答えは無視してください。

于 2012-11-01T02:11:58.350 に答える