0

入力が空の場合、jQuery でチェックインするにはどうすればよいですか?

私は試した:

$('#location').keydown(function(event) {
  if($("#location").val().length == 0 ) { $("#finalSearch").attr('disabled', 'true'); }
  if($("#location").val().length != 0 ) { $("#finalSearch").removeAttr('disabled'); }
});

しかし、フィールドに何もない場合でも、アラートをポップしたいのです。

私がしたいこと:

  • 何もありません: エラー メッセージ。

  • エラー メッセージはありません。

  • この手紙を削除します: エラーメッセージ。

  • フィールドが入力されているが別の関数の場合: エラー メッセージは表示されません。

手伝ってくれてありがとう。

4

2 に答える 2

5

keyupではなくイベントを使用する必要がありますkeydown- キーを押しときにフィールドがまだ更新されていないためvalue、その時点で をテストしても正しい結果が得られません。

blurユーザーが [編集] メニューやドラッグ アンド ドロップなどでフィールドを変更したかどうかを確認するために、同じテストを行っても問題はありません。

また、非常に古いバージョンの jQuery を使用していない限り、無効状態を設定するの.prop()ではなく、メソッドを使用してください。.attr()

$('#location').on('keyup blur', function(event) {
   $("#finalSearch").prop('disabled', this.value.length === 0);
});
于 2012-12-17T01:21:48.657 に答える
0

問題がどこにあるのかわかりません。しかし、これは機能します。

$('#location').on('keyup', function() {
    console.log($(this).val().length);
    if($(this).val().length == 0) {
        $('#finalSearch').prop('disabled', true);
    }else{
        $('#finalSearch').prop('disabled',false);
    }
});​

jsFiddle

于 2012-12-17T01:21:01.020 に答える