2017-12-05 7 views
1

私は行のリストを持つすべての行に2つのチェックボックスを持っています 私がしようとしているのは、誰かがチェックボックスをオンにすると、サーバーにajaxとreponsev失敗したら赤に変わりますが、tr色を緑に変えます。この段階で完了です。jQueryチェックボックスを無効にしてクラスを追加

今度は同じtrにある他のチェックボックスを有効にする必要があります第2のステップで処理する。

$("#SendReview").click(function() { 
 

 
    var selected = ""; 
 
    $('.ReviewForm').each(function() { 
 
    selected = selected + "," + $(this).attr('id'); 
 
    }); 
 

 
    $.ajax({ 
 
    url: '@Url.Action("VerifyFormRquest", "Results")', 
 
    type: "POST", 
 
    data: { 
 
     scanid: selected 
 
    }, 
 
    success: function(data, textStatus, jqXHR) { 
 
     alert(data.success); 
 

 
     data.success.split(',').forEach(function(c) { 
 
     if (c != "") { 
 
      var m = $('#example tr:has(td:contains(' + c + '))').css('background-color', 'lightgreen'); 
 
     } 
 
     }); 
 
    }, 
 
    error: function(jqXHR, textStatus, errorThrown) {} 
 
    }); 
 
});
<table id="example"> 
 
    <tr id="1000000107"> 
 
    <td> 
 
     <input type="checkbox" id="J15000001" scanid="1000000103" onclick="call()" disabled="disabled" value="1000000103" class="ELOchecked"> 
 
    </td> 
 
    </tr> 
 
    <tr id="1000000107"> 
 
    <td> 
 
     <input type="checkbox" id="J15000012" scanid="1000000107" disabled="disabled" value="1000000107" class="ELR"> 
 
    </td> 
 
    </tr> 
 
</table>

enter image description here

+1

どういうのですか? – isherwood

+1

彼は彼がやろうとしていることを言った。彼は彼のAJAXリクエストの成功のために2番目のチェックボックスを有効にしたいと考えています。 – Adosi

+1

あなたはajax呼び出しを持つcall()関数を実装する必要があります。 ajax呼び出しの中で、成功すれば他のチェックボックスを有効にし、何でも必要なものがあれば、失敗したらajaxのエラー関数にコードを追加します – tiborK

答えて

1

あなたはprop方法を使用することによってこれを行うことができます。

$("#myOtherCheckbox").prop("disabled", false);

あなたは同様にそれにクラスを追加したい場合は、次の

$("#myOtherCheckbox").prop("disabled", false).addClass("someClass");

+0

なぜ-1を取得したのかよくわかりません。彼は何をしようとしていると言います。 – Adosi

+0

しかし、 '$("#myOtherCheckbox ")'は本当にこれを行うセレクタではありません... _私は行のリストを持つテーブルを持っていて、すべての行に2つのチェックボックスがあります。 –

+0

私は今、私のクラスでクラスとしてlabidを追加し、$( '。' + c).prop( 'disabled'、false);ありがとう!! – Agha

1

あなたはむしろとして.removeAttrを使用するよりも、チェックボックスをチェックする

("#J15000012").prop("disabled",false); 

を使用する必要があります値はfalseに設定されていません。jquery 3

+1

彼はチェックボックスを有効にしようとしていますが、チェックしていません。 – Adosi

+1

はい、あなたは正しく 'checked'として' enabled'を見落としてしまいました。@Adosi –

+1

私は今、私のクラスでクラスとしてlabidを追加し、$( '。' + c).prop( 'disabled'、false);ありがとう!! – Agha

1

すでに取得するためのパターンを持っているのでtdあなたがnext('td')を使用して、次のいずれかを取得できます。このことができます

var current_td = $('#example td:contains('+ c +')'); 

//If the current td found get the next one and remove the disabled property 
if(current_td.length > 0){ 
    current_td.next('td').prop('checked',false); 
} 

希望を。

+1

この場合、 '.prop'を使うのがより好ましいです。 https://stackoverflow.com/questions/6169826/propchecked-false-or-removeattrchecked – Adosi

+0

私のクラスでクラスとしてlabidを追加した後、$( '。' + c).prop( 'disabled'偽);ありがとう!! – Agha

+0

jQuery 3の時点で、 'removeAttr'は対応するプロパティを' false'に設定しません。 '.prop'はプロパティをtrueまたはfalseに設定する正しい方法です –

関連する問題