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これにより、チェックされた値がサーバーに投稿されるため、展開,して対応する値を取得できます。チェックされた値が空の場合に備えて、ajaxを呼び出す必要はありません。必要に応じて変更できます。

于 2013-10-22T17:07:34.047 に答える