2017-12-08 15 views
1

私のプロジェクトでは、$('#cenDiv').html(data)ajaxで正常に動作します。次に、selAllAttIdというチェックボックスをクリックして何かをしたいと思います。 チェックボックスをチェックする方法

私はonclick="selAllAtt()"を使用する場合は

、および selAllAtt()メソッドが正常に呼び出されますが、 $(this).attr("checked")selAllAtt()方法を終えた後、常に真であるとなったことができますので、 $(this).attr("checked")は常に偽であると alert("checked")は常に動作することはできません。

だから別の方法で変更したい$('#selAllAttId').on("change",function(){})しかし、不運なことに、alert("test)は動作しません。誰が私を助けられるか?ここで

はjsのコードです:

<script> 
$(document).ready(function() 
{ 
$('#selAllAttId').on("change",function(){ 
    alert("test");//can not work 
    }); 
}); 


function corpAnn() 
{ 
$.ajax({ 
     dataType:'html', 
     type:"POST", 
     url:"oat.php", 
     data: {oaAnn:oaAnn}, 
     success:function(data) 
     { 
      $('#cenDiv').html(data); 
     } 
     });  
} 

function selAllAtt(){ 
    alert("checkbox"); 
    var xzyId=document.getElementById('xzyId');//fetch other table id 
    var checked=xzyId.getElementsByTagName('input');//fetch all table checkbox successfully 
    if($(this).attr("checked"))//always false.   
    { 
    alert("checked"); 
    for(i=0;i<checked.length;i++) 
    { 
     checked[i].checked=true; 
    } 
    } 
    else 
    { 
    alert("delete"); 
    for(i=0;i<checked.length;i++) 
    { 
    checked[i].checked=false; 
    } 
    } 
}); 
</script> 

<div id="cenDiv"></div> 

oat.phpのコードです:

echo '<td style="color:Maroon" bgcolor="#888888"> 
     <input type="checkbox" id="selAllAttId" onclick="selAllAtt()"> 
     <b>Num</b> 
     </td>'; 
+0

'this'をあなたが思うものではありません。 'onclick'によって呼び出される関数は、その要素に関連する特別な' this'コンテキストを持ちません。 'onclick'の使用を中止し、現代的で邪魔にならないイベントリスナーを使用してください。 – charlietfl

+0

@charlietfl、$(これ)をテストしましたが、もう一度失敗します。 – stack

+0

' this'はonclickが発生する要素とは関係ありません。あなたはjavascriptのユーザイベントについていくつかのチュートリアルを勉強することを提案します – charlietfl

答えて

2

あなたはこのようなネイティブのHTMLノードを使用することができます

var checkbox = document.getElementById('selAllAttId'); 
if(checkbox.checked)   
{ 
    // do something 
}else{ 
// do something else 
} 
+0

ありがとう – stack

関連する問題