¿Cómo puedo verificar si una casilla está marcada?

187

Estoy creando una aplicación web móvil con jQuery Mobile y quiero verificar si una casilla está marcada. Aquí está mi código.

<script type=text/javascript>
  function validate(){
    if (remember.checked == 1){
      alert("checked") ;
    } else {
      alert("You didn't check it! Let me check it for you.")
    }
  }
</script>

<input id="remember" name="remember" type="checkbox" onclick="validate()" />

Pero por alguna razón u otra no lo ejecuta.

Por favor ayuda !

---- EDITAR ----- Esto es lo que tengo por el momento.

<DIV data-role="content" data-theme="g">
    <DIV class=ui-grid-g-login>
        <FORM method=post action=[$=PROBE(266)/] data-theme="C">
            <P>~DATA_ERROR~</P>
            <div id="mail" data-role="fieldcontain">
                <label for="mail">Email:*</label>       
                <input id="mail" name="mail" type="email" />
            </div>
            <div id="pass" data-role="fieldcontain">
                <label for="pass">Paswoord:*</label>        
                <input id="pass" name="pass" type="password" />
            </div>
            <div id="remember" data-role="fieldcontain">
                <label for="remember">Onthoud mij</label>       
                <input id="remember" name="remember" type="checkbox" onclick="validate()" />
            </div>
            <P><INPUT class=btn name=submit value=Login type=submit  onclick="validate()"></P>  
        </FORM>
    </DIV>
</DIV><!-- /content -->

<script type=text/javascript>
function validate(){
    var remember = document.getElementById('remember');
    if (remember.checked){
        alert("checked") ;
    }else{
        alert("You didn't check it! Let me check it for you.")
    }
}
</script>

----EDITAR--

Resuelto, el problema era que el contenido del campo también se llamaba 'recordar'

Steaphann
fuente
1
¿Qué hay rememberen este contexto: if (remember.checked == 1){???
PeeHaa
Más tarde, debe recordar el correo electrónico y la contraseña. Es para una página de inicio de sesión
Steaphann
Lo que estoy tratando de decir es que rememberes undefineden ese contexto. Tratar console.log(remember);.
PeeHaa
¿Qué versión de HTML estás usando? No es realmente XHTML, ¿verdad?
Sr. Lister

Respuestas:

272

checkedes booleanpropiedad para que pueda usarlo directamente en IFcondiciones: -

 <script type="text/javascript">
    function validate() {
        if (document.getElementById('remember').checked) {
            alert("checked");
        } else {
            alert("You didn't check it! Let me check it for you.");
        }
    }
    </script>
Pranav
fuente
2
Siempre recibo el mensaje '¡No lo revisaste! Dejame revisarlo por ti.'
Steaphann
No, está funcionando bien para mí; Recibo ambos mensajes de alerta.
Pranav
@Steaphann ¿Reemplazó la palabra 'recordar' con su ID de casilla de verificación? ... oh, acabo de notar 2012 0.o ... ps que olvidó el punto y coma después de la segunda declaración de alerta
josh.thomson
¿Qué pasa si no quiero que lo compruebe por mí y solo quiero ver si está marcado o no?
Mark Kramer
@ josh.thomson los punto y coma son opcionales.
kojow7
61

Prueba esto:

function validate() {
  var remember = document.getElementById("remember");
  if (remember.checked) {
    alert("checked");
  } else {
    alert("You didn't check it! Let me check it for you.");
  }
}

Su script no sabe cuál es la variable remember. Primero debe obtener el elemento con getElementById ().

ayunarse
fuente
También debes aconsejar que te quites eso == 1. Solo funciona debido a dos errores. En realidad, el valor es trueo false, simplemente debería usarloif( remeber.checked )
jAndy
Siempre recibo el mensaje '¡No lo revisaste! Dejame revisarlo por ti.'
Steaphann
16

Esto debería permitirle verificar si el elemento con id='remember'es'checked'

if (document.getElementById('remember').is(':checked')
Peter
fuente
3
isno pertenece al objeto elemento DOM
yves amsellem
10
.is()- es una función jQuery. .checkedes javascript
max kaplan
8

Si está utilizando este formulario para aplicaciones móviles, puede usar el atributo requerido html5. no desea utilizar ninguna validación de script java para esto. Deberia de funcionar

<input id="remember" name="remember" type="checkbox" required="required" />
shenbaga kannan
fuente
5

usar así

<script type=text/javascript>
function validate(){
if (document.getElementById('remember').checked){
          alert("checked") ;
}else{
alert("You didn't check it! Let me check it for you.")
}
}
</script>

<input id="remember" name="remember" type="checkbox" onclick="validate()" />
hkutluay
fuente
1
Siempre recibo el mensaje '¡No lo revisaste! Dejame revisarlo por ti.'
Steaphann
@ user1251632 WFM también. ¿Puedes editar tu pregunta y mostrar lo que tienes ahora? Tal vez cometió un error de copiar y pegar.
Sr. Lister
document.getElementById ('recordar'). marcado == 1 fue modificado por mí antes de su comentario ... puede ser el problema.
hkutluay
4

Estoy usando esto y me funciona con Jquery :

Jquery:

var checkbox = $('[name="remember"]');

if (checkbox.is(':checked'))
{
    console.log('The checkbox is checked');
}else
{
    console.log('The checkbox is not checked');
}

Es muy simple, pero de trabajo.

¡Saludos!

Radames E. Hernandez
fuente
3
    if (document.getElementById('remember').checked) {
        alert("checked");
    }
    else {
        alert("You didn't check it! Let me check it for you.");
    }
Lakshmana Kumar
fuente
3

Use este código simple a continuación: https://jsfiddle.net/Divyesh_Patel/v7a4h3kr/7/

<input type="checkbox" id="check">
<a href="#" onclick="check()">click</a>
<button onclick="check()">button</button>
<script>
 function check() {
    		if (document.getElementById('check').checked) {
            alert("checked");
        } else {
            alert("Not checked.");
        }
       
    }

</script>

Divyesh
fuente
2

rememberno está definido ... y la checkedpropiedad es un valor booleano, no un número.

function validate(){
    var remember = document.getElementById('remember');
    if (remember.checked){
        alert("checked") ;
    }else{
        alert("You didn't check it! Let me check it for you.")
    }
}
Quentin
fuente
2

Esto debería funcionar

    function validate() {
        if ($('#remeber').is(':checked')) {
            alert("checked");
        } else {
            alert("You didn't check it! Let me check it for you.");
        }
    }
Aditya
fuente
1

Puedes probar esto:

if ($(#remember).is(':checked')){
   alert('checked');
}else{
   alert('not checked')
}
Donminick Bautista
fuente
0

Use este código simple a continuación: https://jsfiddle.net/Divyesh_Patel/v7a4h3kr/7/

<input type="checkbox" id="check">
<a href="#" onclick="check()">click</a>
<button onclick="check()">
button
</button>
<script>
 function check() {
    		if (document.getElementById('check').checked) {
            alert("checked");
        } else {
            alert("You didn't check it! Let me check it for you.");
        }
       
    }

</script>

Divyesh
fuente
-1

Prueba esto

<script type="text/javascript">
window.onload = function () {
    var input = document.querySelector('input[type=checkbox]');

    function check() {
        if (input.checked) {
            alert("checked");
        } else {
            alert("You didn't check it.");
        }
    }
    input.onchange = check;
    check();
}
</script>

fuente
-1

También puede usar los métodos JQuery para lograr esto:

<script type="text/javascript">
if ($('#remember')[0].checked) 
{
 alert("checked");
}
</script>
Supriya
fuente