¿El valor de la casilla de verificación generada por jQuery en IE8 se almacena como "activado" en lugar de como valor real?

El siguiente código de ejemplo funciona en Firefox pero IE está causando problemas.

Este código representa esencialmente una lista de casillas de verificación dinámicas de acuerdo con una matriz JSON.

Cuando intento enviar el variblse, el valor de las casillas de verificación se almacena como "on". He notado que hay un atributo adicional que se procesa (solo IE) llamado jQuery1288631121994 que almacena el valor real. Parece que jquery está tratando de administrar el estado de las casillas de verificación, pero parece que no puedo acceder a los valores almacenados.

Aquí está mi ejemplo de prueba:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script src="js/jquery-1.4.3.min.js" type="text/javascript"></script>
    <script language="javascript" type="text/javascript">


        var state = {
            Professions: [1]
        };

        $(document).ready(function () {



            var data = [{ "ID": 1, "Name": "Football" }, { "ID": 2, "Name": "Cricket" }, { "ID": 3, "Name": "Hockey"}];

            $.each(data, function () {

                var catid = this['ID'];
                var catname = this['Name'];

                var selected = $.inArray(catid, state.Professions) != -1 ? true : false;

                $("<li></li>")
                    .append(
                        $("<input></input>").attr({
                            id: 'category' + catid
                            , name: 'categories'
                            , value: catid
                            , type: 'checkbox'
                            , checked: selected
                        })
                        .click(function (event) {
                            //alert($(this)[0].value);

                        })
                    )
                    .append(
                            $(document.createElement('label')).attr({
                                'for': 'category-' + catid
                            })
                            .text(catname)
                    )
                    .append(
                        $("<div></div>").addClass("clear")
                    )
                    .appendTo("#ProfSelector ul");

            });

                        $("#btnTest").click(function () {
                alert($("#ProfSelector input:checkbox:checked").val());
            });

        });
    </script>
</head>
<body>
    <div id="ProfSelector">
        <ul>
        </ul>
    </div>
    <a href="#" id="btnTest">Test</a>
</body>
</html>

Respuestas a la pregunta(3)

Su respuesta a la pregunta