Validacion de Check con jquery no me funciona

tengo una pagina donde tengo N checkbox, de los cuales al menos uno debe estas tickeado antes de realizar el submit, tengo lo siguiente pero no me valida los check, alguien sabe por que?

introducir la descripción de la imagen aquí

El código JS es:


En la imagen se puede ver que el la UI tengo los check, tengo los archivos de jquery cargados y también se muestra la porción de código que debería validar los checks.

0
задан 07.12.2016, 22:10
4 ответа

Ты нуждаешься в том, чтобы добавить все внутри одного $(document).ready().

$(document).ready(function(){
  $('form').submit(function(e){

    if (!$("input:checkbox:checked").length){
      alert("No hay checkbox 'checked'");
    }
            e.preventDefault();
  });
});

JSBIN

0
ответ дан 24.11.2019, 12:13
  • 1
    Así уже функционируй, jejejeje, но сейчас передо мной предстала другая дилемма, checkbox создаются diná micamente, или же смоги иметь 0, 1 или N Checkbox, и, итак, когда он существует, 0 (НУЛь) checkbox не позволяет мне делать submit, тогда, как я могу делать validació n ú nicamente, когда, если они существовали checkbox? – RSillerico 07.12.2016, 22:35
  • 2
    Пробуй меняя $("input:checkbox").prop('checked').length на $("form").find("input:checkbox").prop('checked').length – MikeVelazco 07.12.2016, 22:41
  • 3
    Чтобы получать число существующих ты мог бы использовать $("form").find("input:checkbox").length и так мог использовать $("form").find("input:checkbox").length && !$("form").find("input:checkbox").prop('checked').length внутри тебя if – MikeVelazco 07.12.2016, 22:44
  • 4
    Я не понимаю, с этим có я говорю, что он всегда отпускает alert, он не импортирует, если checkbox está n проверенные или нет – blonfu 08.12.2016, 00:11
  • 5
    @blonfu он имеет razó n. Только нужно менять селектор. в $('input:checkbox:checked') – MikeVelazco 08.12.2016, 00:26
<script type="text/javascript">
  $(document).ready(function(){
    $('form').submit(function (e) {
         if($("input[type=checkbox]:checked").length != 0){
            //OK
         }else{
           alert('Debe seleccionar al menos un valor');
           return false;
         }
    });
   });
</script>
0
ответ дан 24.11.2019, 12:13

Хороший в конце концов я остаюсь таким:

<script type="text/javascript">
    $(document).ready(function () {
        $('form').submit(function (e) {
            if ($("form").find("input:checkbox").length > 0) {
                if ($('input[type=checkbox]:checked').length === 0) {
                    e.preventDefault();
                    alert('Debe seleccionar al menos un valor');
                }
            }
        });
    });
</script>

и функционируй в нее perfecciГіn.

0
ответ дан 24.11.2019, 12:13

EstГЎ serГ - в нее versiГіn оптимизированная :D

<script type="text/javascript">
  $(document).ready(function(){
    var $form = $('form');
    $form.on('submit', (function (e) {
        e.preventDefault(); // Si se va a enviar un AJAX
         if($form.find("input:checked").length > 0){
            //OK
         }
    });
   });
</script>

ВїPor quГ©? из-за которого после того, как будет сохранять $formulario в переменной, уже он не будет искать снова во всем DOM. также как и find, только ищи внутри избранного DOM, в ves всего документа.

И jquery рекомендуй не использовать $('input[type=checkbox]:checked')

https://api.jquery.com/checked-selector /

0
ответ дан 24.11.2019, 12:13
  • 1
    Где он упоминает об этом-? Спасибо – cignius 15.12.2016, 05:23

Теги

Похожие вопросы