Acabo de recibir una gran ayuda hoy con un problema anterior de jQuery y pensé que, debido a mi suerte, tal vez también podría obtener ayuda con algunas casillas de verificación. ¿Puede alguien decirme qué estoy haciendo mal?

¡Gracias!

Las casillas de verificación están haciendo eco correctamente de los valores bool de la base de datos, pero cuando envío los valores modificados, una alerta () me indica que no están definidos.

        else if (item.field == "admCustRptDly" && item.value == "1")
        {
          $('#admCustRptDly').attr('checked', true);
        }

        else if (item.field == "admCustRptSumm" && item.value == "1")
        {
          $('#admCustRptSumm').attr('checked', true);
        }

        else if (item.field == "admCustRptDtl" && item.value == "1")
        {
          $('#admCustRptDtl').attr('checked', true);
        }

<tr>
    <td class="admMarker">Daily<input type="checkbox" id="admCustRptDly" name="admCustRptDly" class="admChkbx"></td>
    <td class="admMarker">Summary<input type="checkbox" id="admCustRptSumm" name="admCustRptSumm" class="admChkbx"></td>
    <td class="admMarker">Detail<input type="checkbox" id="admCustRptDtl" name="admCustRptDtl" class="admChkbx"></td>
</tr>

$(function() {   $('.error').hide();
    $('input.text-input').css({backgroundColor:"#FFFFFF"});
    $('input.text-input').focus(function(){
        $(this).css({backgroundColor:"#FFDDAA"});
    });  
    $('input.text-input').blur(function(){
        $(this).css({backgroundColor:"#FFFFFF"});
    });

      $(".admCustBtn").click(function()
    {       // validate and process form
            // first hide any error messages
        $('.error').hide();



          var admCustRPSecPhone =
    $("input#admCustRPSecPhone").val();
          var admCustRptDly =
    $("checkbox#admCustRptDly").val();  
    var admCustRptSumm =
    $("checkbox#admCustRptSumm").val();
          var admCustRptDtl =
    $("checkbox#admCustRptDtl").val();

            var dataString =
        'admCustID='+ admCustID +
        '&admCustRptDly='+ admCustRptDly +
        '&admCustRptSumm='+ admCustRptSumm +
        '&admCustRptDtl='+ admCustRptDtl;

            alert (dataString);return false;

            $.ajax({
          type: "POST",
          url: "body.php?action=admCustomer",
          data: dataString,
          success: function(){
            alert( "Success! Data Saved");
          }
         });
        return false;   }); });
2
Frank 19 may. 2009 a las 04:49

4 respuestas

La mejor respuesta

Sus selectores para las casillas de verificación no son correctas.

  var admCustRPSecPhone = $("input#admCustRPSecPhone:checked").val() == 'on';
  var admCustRptDly = $("input#admCustRptDly:checked").val() == 'on';  
  var admCustRptSumm = $("input#admCustRptSumm:checked").val() == 'on';
  var admCustRptDtl = $("input#admCustRptDtl:checked").val() == 'on';

También podrías usar algo como:

  var admCustRptDly = $("#admCustRptDly:checkbox:checked").val() == 'on';

Esto establecerá los valores en verdadero / falso dependiendo de si la casilla está marcada o no.

0
tvanfosson 19 may. 2009 a las 02:24

No tiene un atributo de valor establecido en su elemento de entrada HTML

<input type="checkbox" value="1" id="admCustRptDly" name="admCustRptDly">
0
duckyflip 19 may. 2009 a las 00:54

En realidad ambos ...

Las casillas de verificación no tienen valor, por lo que si intenta alertar () sus valores conducirá a "indefinido", pero si se enfrenta a esto al alertar la casilla de verificación, probablemente esté haciendo algo mal.

Establecer sus valores en verdadero no conducirá a nada, como dijo @Soviut, la mayoría de las propiedades repiten sus nombres en la configuración. Entonces su entrada será como:

<input type="checkbox" checked="checked" value="1" name="myCheck" />

Por lo tanto, intente lo anterior y denos su opinión = ´p

1
José Leal 19 may. 2009 a las 01:02

Lo siento en mi caso fue el .attr () - funciona bien para mí, incluso en Adobe Air.

jQuery('#mycheckbox').attr( "checked" )
1
Mario Scheliga 11 feb. 2011 a las 10:23