jquery
  • asp.net
  • checkbox
  • checked
  • 2011-08-19 3 views 1 likes 
    1

    런타임에 for 루프를 사용하여 checkBox를 생성했습니다. 이제 각 체크 박스에 체크 된 이벤트를 첨부하고 싶습니다. jquery에서 동일한 이벤트를 구현하는 방법.JQuery를 사용하여 checkBox에 체크 된 이벤트를 동적으로 연결합니다.

    나는 checkBox를 추가하기 위해 테이블을 사용하고 있습니다.

    <script> 
    var genTable = "<table border='1' style='border-collapse:collapse' cellpadding='5' width='100%'><thead><tr><td><input type='checkBox' id='mainCheck' /></td><td>ID</td><td>ArticleTitle</td><td>ArticleDate</td></tr></thead>"; 
    for (i = 0; i < result.length; i++) { 
            if (result[i].IsImageAvailable == "TRUE") { 
             iChecked = ""; 
            } 
            else { 
             iChecked = "disabled = disabled"; 
            } 
            genTable += "<tr><td width='2%'> 
    <!--Here is my checkBox on which i want to attach checked event--> 
    <input type='checkBox' id='chkBox" + i + "' onchange='FillSecondGrid(" + result[i].ArticleID + ")' /> 
    
    </td><td width='5%'>" + result[i].ArticleID + "</td><td>" + result[i].ArticleTitle + "</td><td width='5%'>" + result[i].ArticleDate + "</td></tr>"; 
           } 
           genTable += "</tbody></table>"; 
           document.getElementById("gridFirst").innerHTML = genTable; 
    </script> 
    
    +0

    초기 페이지로드 (AJAX) 이후에 체크 박스가 페이지에 추가되는 것을 의미합니까? – Alex

    +0

    나는 코드로 내 질문을 업데이 트했습니다 ... 당신이 내 문제를 해결하는 데 도움이되기를 바래요, 예, 이것은 document.ready Jquery 이벤트에서 호출되고 있습니다. – Abbas

    +0

    최신 버전의 JQuery (1.7 이상)에서는 대신 .on()을 사용합니다 (http://api.jquery.com/on/). 이후 뷰어 .live에 대한 – BasTaller

    답변

    3

    , 당신은 체크 박스 생성 후 onchange 이벤트를 추가 할 수 있습니다

    <script> 
        // .. checkbox generation here .. 
        $('table').find('input[type=checkbox]').change(function() { /* do things on change here */ }); 
    </script> 
    
    .on

    $(function() { 
        // on document ready.. 
        $('table input[type=checkbox]').on('change', function() { /* do things on change here */ }); 
    } 
    

    을 :

    또는 대안 단지 준비 문서에있는 모든 체크 박스 요소에 .on를 사용 thod는 문서 준비가 완료된 후에 생성 된 새로운 체크 박스를 모두 잡아서 이미 onchange 이벤트를 첨부합니다.

    +0

    은 jquery 1.9가 .on으로 변경 되었기 때문에 제거됩니다. – CaffeineShots

    +0

    실제로 업데이트되었습니다! – Alex

    0

    live()를 사용할 수 있습니다. 여기에 (구문 등을 확인하시기 바랍니다) 예입니다

    당신이 script 태그 확인란 마크 업을 생성하고 따라
    $('.someclassforyourcheckbox').live('change', function(){//do your stuff}) 
    
    0

    ,

    <input class="dynChk" type='checkBox' id='chkBox" + i + "' onchange='FillSecondGrid(" + result[i].ArticleID + ")' /> 
    

    다음이에서 이벤트를 통과 한 여기 live

    $(".dynChk").live("change",function(){ 
    //your code 
    }); 
    
    1

    없음 답변 delegate 또는 live

    $("table").delegate(".dynChk",'change',function(){ 
    //your code 
    }); 
    

    를 사용하여 체크 박스에 클래스를 추가하는 당신을 확인란이 c인지 알아야합니다. 지독한가. 다음은 지정된 요소의 하위 항목 인 모든 체크 상자에 이벤트를 첨부하는 크로스 브라우저 스 니펫입니다.이 체크 박스가 켜져 있거나 꺼져있는 경우 체크 상자를 클릭하면 작동합니다.

    var checkboxes = $(element).find("input[type=\"checkbox\"]"); 
    $(checkboxes).change(function (event) { 
        // These two lines compensate for getting the event and checkbox when in ie. 
        if (!event) { var event = window.event; } 
        var checkbox = event.target || event.srcElement; 
        if (checkbox.checked) 
         alert("Checkbox is checked"); 
        else 
         alert("Checkbox is not checked"); 
    }); 
    

    나는 두 가지, 즉 보상 라인이 실제로 jQuery를 이벤트에 필요한 생각하지 않는다, 그러나 당신의 코드뿐만 아니라 아무도 jQuery를 이벤트와 함께 작동 할 수 있도록 도움이 거기에 넣어.

    관련 문제