如何使用jQuery获取每个选中的复选框

时间:2014-03-27 11:36:40

标签: javascript php jquery

我有以下内容:

PHP / HTML代码:

<?php
$c = 1;
    foreach($this->contactos as $contacto){
?>
        <div class="uk-form-row">
        <label for="contactopadrino<?php echo $c; ?>" class="uk-form-label"><?php echo $contacto->email; ?></label>

        <input class="contactopadrinos" name="contactopadrino[]" id="contactopadrino<?php echo $c; ?>" type="checkbox" value="<?php echo $contacto->email; ?>" />
        </div>

<?php 
$c++;
}
?>      

jQuery CODE:

     function validarEnviarDescuento(){  
        $('#errorofertacontainerdescuento').css('display','none');
        $('#errorofertadescuento').html('');
        var validar = 0;
        var vacio = 0;
        for(var e=1; e<6; e++){
            var email = $("#email_contactopadrino"+e).val();    
            if(!validarEmail(email) && email != ''){
                validar++;
            }
            if(email != ''){
                vacio++;
            }
        }

        if(!vacio){
             $('input:radio:checked').each(function () { 
                var $this = $(this);

                if ($(this).prop('checked')) {
                    return true;
                }
            });

            $('#errorofertadescuento').append('<li>' + '<?php echo JText::_('COM_CSTUDOMUS_ERROR_SIN_SELECCIONAR'); ?>' + '</li>');
            $('#errorofertacontainerdescuento').css('display','block');
            return false;
        }
        if(validar){ 
            $('#errorofertadescuento').append('<li>' + '<?php echo JText::_('COM_CSTUDOMUS_ERROR_EMAIL_INCORRECTO'); ?>' + '</li>');
            $('#errorofertacontainerdescuento').css('display','block');
            return false; 
        }
        else{ 
            return true; 
        }

 }

我试图浏览每个输入,如果检查一个,它应该返回true并提交但是我所做的不起作用。

2 个答案:

答案 0 :(得分:1)

您可以使用:checked和选择器来获取所有选中的单选按钮。

$('input:radio:checked')
  

说明:匹配已选中或选中的所有元素jQuery docs

如果要检查是否检查了至少一个无线电,则可以使用长度

if($('input:radio:checked').length)
{
}

对于迭代已检查的无线电,您可以使用每个

$('input:radio:checked').each(function(){
  alert(this.value);
});

答案 1 :(得分:1)

您不需要使用each。而是使用co {:checkedlength

return $('input:checkbox:checked').length;

如果复选框按钮已选中

,则返回true