0

デフォルトでアクティブにする一連のtextareas がありますが、特定のテキストが含まれている場合は無効にする必要があります。

HTML

<textarea id="my_ta_1">Example 1</textarea>
<textarea id="my_ta_2">Example 2</textarea>
<textarea id="my_ta_3">Example 3</textarea>

jQuery (内部のtextareawithを無効にしようとしています。)Example 2

if (!$('[id*="my_ta_"]').val(Example 2))
 {$(this).attr("disabled","disabled");}

出来ますか?

そして、私は近くにいますか?=)

JSFiddle

次のjQueryを使用してtextarea#my_ta_2のテキストに変更しています

$('select').change( function()
 {var text1 = $('select option:selected').val();
  $('#my_ta_2').html(text1);
 }
);

その場合、再度アクティブにすることはできますか?

4

5 に答える 5

2

a を使用して、filter()好きな値を除外できます。

$('textarea[id^="my_ta_"]').filter(function() {
    return this.value.toLowerCase().indexOf('example 2') != -1;
}).prop('disabled', true);

大文字と小文字を区別しない文字列 'example 2' を含むテキストエリアを無効にする例。

フィドル

于 2013-10-23T02:14:09.320 に答える
1

jQuery ラッパー セットで getter メソッドを使用すると、セットの最初の要素の値が返されます... セット内の残りの要素は無視されます...

また、比較するのではなく、テキストエリアの値を設定する場所...

関数をパラメーターとして受け取る .prop()セッターを使用する必要があります

$('textarea[id*="my_ta_"]').prop('disabled', function(){
    return $.trim(this.value) == 'Example 2'
})

デモ:フィドル

于 2013-10-23T02:14:38.880 に答える
0

あなたは正しい軌道に乗っていました。これを行う1つの方法は次のとおりです。

var text_to_match = "Example 2";

$('[id*="my_ta_"]').each(function(){
    var cur_value = $(this).val();
    if(cur_value === text_to_match){
        $(this).attr('disabled', 'disabled');
    }
});

フィドル

于 2013-10-23T02:29:33.003 に答える
0
$("textarea").each(function(){
  if($(this).text() !== "Example 2"){
     $(this).attr("disabled","disabled")
  }
});

上記を試してください。影響を受けたくない追加の tetarea がある場合は、指定されたものを親でラップし、それらの親に対して相対的に見つけます。

于 2013-10-23T02:15:49.360 に答える