Soy bastante nuevo en Jquery y tengo este jquery para verificar si las casillas están marcadas. Si no, el formulario no debería ejecutarse.

Funcionó bien solo con la identificación #validCheck, pero cuando agregué la #feeCheck no importa si se verifica cuál está, el formulario se ejecuta.

Lo que quiero es que ambas casillas de verificación se deben marcar para que se ejecute el formulario. Si ambos no están marcados, el formulario no debe ejecutarse.

  if(!($('#validCheckbox , #feeCheckbox').prop('checked')))
{
  errorMessage += "You must check the checkboxes to continue!<br/>";
  errorCounter++;
  ok = false;
  $("#errorDiv").css({"backgroundColor": "#f9f9f9", "color": "#D2002C", "padding": "10px"});
  $("#errorDiv").html(errorMessage);

}

¿Realmente tengo que escribir dos declaraciones if separadas para cada casilla de verificación?

Estoy reutilizando el script para varios formularios, algunos de ellos tienen ambas casillas de verificación y otros solo tienen el #validCheck

Puede alguien ayudarme con esto.

0
Slowboy 10 may. 2019 a las 14:27

3 respuestas

La mejor respuesta

Sí, necesitas dos consultas separadas. De la documentación...

Obtener el valor de una propiedad para el primer elemento en el conjunto de elementos coincidentes

Entonces necesitas hacerlo ...

if(!($('#validCheckbox').prop('checked') && $('#feeCheckbox').prop('checked')))

En respuesta a los comentarios del OP a madalinivascu, lo siguiente funcionaría para situaciones donde #feeCheckbox no existe ...

var $feeCheckbox = $("#feeCheckbox");
if (!$("#validCheckbox").prop("checked") || ($feeCheckbox.length > 0 && !$feeCheckbox.prop("checked"))) {
  ...
}

El resultado es que si #validCheckbox se establece en falso, ingrese if ... o si se encuentra #feeCheckbox y se establece en falso ingresa if.

Al poner el objeto jquery en la variable, no tiene que encontrarlo varias veces.

1
freefaller 10 may. 2019 a las 12:40

Jquery no realiza operaciones lógicas en la propiedad de los objetos, por lo que debe dividir el selector

if(!($('#validCheckbox').prop('checked') && $('#feeCheckbox').prop('checked')))
2
madalinivascu 10 may. 2019 a las 11:29
if(!$('#validCheckbox').is(':checked') && !$('#feeCheckbox').is(':checked'))
-1
Salman Jameel 10 may. 2019 a las 11:31