0

嗨,我在尝试绑定复选框数组中的事件时遇到问题,看起来好像绑定方法不起作用,我向探测事件发出警报,但似乎什么也没发生

这是我的jQuery代码

$('input[name="id_especieganado[]"]').each(function(e){
    //$('[name="id_especieganado[]"]').click(function() {
        var $this = $(this);

        var id_jurisdiccion = new Array();
        var jurisdicciones = "";
        //id_jurisdiccion = $("#id_jurisdiccion[]");
        var i = 0;
        $(this).bind('click',function(){
        //$('input[name="id_especieganado[]"]').each(function(){
            if($(this).is(':checked'))
            {
                alert($(this).val());
                id_jurisdiccion.push($(this).val());
                jurisdicciones += "id_jurisdiccion[]="+$(this).val()+"&";
                $("#buscarrfc").val("Hola");
            }
        })
        //if($("#id_jurisdiccion[]").attr("checked")==true)
            //alert($("input[name='id_jurisdiccion[]']").val());
        $.ajax({
            url:"funciones_jquery2.php",
            type: "POST",
            dataType: 'html',
            data: jurisdicciones,
            success: function(datos){
                $("#listamunicipios").html(datos);
                //alert(datos);
            }
        })
            //})
    });

并且从数据库生成的动态数组来自类中的下一个方法

private function especies_ganado()
    {
        $database = $this->conexion_db();
        $resultado = pg_query($database, "SELECT *FROM especies_ganado;");
        echo "<tr><td>";
        while($row = pg_fetch_array($resultado))
        {
            echo "<input type=\"checkbox\" name=\"id_especieganado[]\" id=\"id_especieganado[]\" value=\"$row[id_especieganado]\"> $row[especie_ganado]<BR>";
        }
        echo "</td></tr>";
    }

这是一个私有方法,用于从另一个公共方法填充列表,打印复选框但未绑定事件。复选框的打印取决于下一个 jquery 代码中的选择控件。

$("#id_cedulaverificacion").change(function(){
        var id_cedulaverificacion = $("#id_cedulaverificacion").val();
        var id_tipovisita = $("#id_tipovisita").val();
        //alert(id_cedulaverificacion);
        $.ajax({
            url: "funciones_jquery.php",
            type: "POST",
            data: "id_cedulaverificacion="+id_cedulaverificacion+"&id_tipovisita="+id_tipovisita,
            success: function(datos){
                $("#cedulas").html(datos);
            }
        });
    });

任何帮助我都会非常感激

4

1 回答 1

0

点击事件不需要每个循环;用于.on()动态添加的元素。

 $(document).on('click','input[name="id_especieganado[]"]',function(){
    
   var jurisdicciones = $('input[name="id_especieganado[]"]:checked').map(function(){
       return this.value;
    }).get().join(',');
    alert(jurisdicciones); //this will have comma seperated checked values
    if(jurisdicciones !=""){ //check if not empty then call ajax
      $.ajax({
        url:"funciones_jquery2.php",
        type: "POST",
        dataType: 'html',
        data: {data:jurisdicciones}, //comma seperated values.
        success: function(datos){
            $("#listamunicipios").html(datos);
            //alert(datos);
        }
      })
    }
        
});

这样,检查的值将发布data到服务器,因此您可以将其分解,并获取相应的值。我正在使用 if 以防万一检查的值为空,则无需调用 ajax。您可以根据需要对其进行修改。

于 2013-10-22T17:07:34.047 回答