0

keyupイベントのtextareaにクラスを追加しようとしています。イベントは発生していますが、クラスは追加されていません。そのtextareaインスタンスにクラスが存在しない場合は、ここでクラスを追加しようとしています

  $("textarea").live("keyup", function() {
    $("this[class='']").addClass("modified");
      });

送信中に、以下のコードを使用して、クラスが変更されていないコードを無効にします。ただし、これはtextareasを送信していません。したがって、上記のコードにはクラスが追加されていないようです。

$("textarea:not(.modified)").attr("disabled", "disabled");

誰かが私にこのコードの問題を助けてもらえますか?

ありがとう

よろしく

キラン

4

4 に答える 4

2

そのはず

$("textarea").live("keyup", function(e) {
  $(e.target).addClass("modified");
});

クラスがすでに存在する場合、そのクラスは追加されません。

于 2012-05-10T14:42:43.707 に答える
1

2 つの可能性があります。

jQuery でキーワードを使用する場合、this引用符は必要ありません。

私は次のようなものを試してみます:

if ( !($(this.hasClass("modified")) ){

     $(this).addClass("modified");
}

2 番目の問題は、クラスのないオブジェクトにクラスを追加しようとしている可能性があります。そのフィールドに別のクラスが既に存在する可能性はありますか?

于 2012-05-10T14:46:45.107 に答える
1
  $("textarea").on("keyup", function() {
       $(this).addClass("modified");
  });
于 2012-05-10T14:54:37.117 に答える
1

キラン、

これをテストしたところ、キーアップ時にクラスが追加されました。コードの代わりにこれを試して、機能するかどうかを確認してください。

$('textarea').keyup(function() {
    $(this).addClass("modified");
  });

送信時のフォームはどのようになっていますか? コードにデバッガーを投入して、問題が発生$("textarea:not(.modified)").attr("disabled", "disabled");しているかどうかを確認するのにうんざりしていませんか?

于 2012-05-10T14:50:19.507 に答える