Cuando la cookie dada no existe, el resultado debe ser nulo o indefinido , pero en este caso, la cocina favorita no existe, pero el script cree que sí.
El resultado debe ser "OK Detect" para nulo o indefinido, pero el resultado es "MALO sin resultado de detección". ¿Por qué esto no funciona?
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.js"></script> <script> actcookies=jQuery.cookie("favouritescook"); function fav(id) { if (actcookies=='undefined' || actcookies=='null') { alert("OK detect"); } else { alert("BAD Not detect Result : "+actcookies); } } </script> <div onclick="fav(1);">Test Now 1</div>He probado esto en diferentes navegadores, con el mismo resultado. no entiendo esto
El problema es que no es igual a la cadena 'undefined' o la cadena 'null' , coincide con los valores undefined y null , sin las comillas ( '' ).
Deshazte de las comillas y debería funcionar bien.
no volverá undefined , necesita cambiar su controlador como
if (typeof actcookies=='undefined' || !actcookies) { alert("OK detect"); } else { alert("BAD Not detect Result : "+actcookies); }Esto debería funcionar
actcookies=jQuery.cookie("favouritescook"); function fav(id) { if (actcookies==undefined || actcookies==null) { alert("OK detect"); } else { alert("BAD Not detect Result : "+actcookies); } }