javascript - jquery 字符串和逻辑或

标签 javascript jquery

下面几行代码有什么问题...

它一直提示系统错误..之类的

if( (radioval === "undefined")  || (radioval === null) || (radioval === "null") ) { 

行动中的完整条件

if($('#digitallogin').is(":checked")){
              var radioval = $("input[name=certificateradio]:checked").val();//its giving the string "user" 
                if( (radioval === "undefined")  || (radioval === null) || (radioval === "null") ) {   //this line 
                    $("#login_error").text("please select the signin certificate");
                        return false;
                 }

          } 

enter image description here

感谢您的帮助。

最佳答案

您的代码中没有语法错误。如果代码有语法错误,Firebug 控制台(不是 Watch 面板)中会出现错误消息,并且代码根本不会运行。您永远不会到达断点。

您的屏幕截图中的语法错误在您的watch 表达式中。删除监视表达式,那些错误消息就会消失。

在您更新的屏幕截图中,我可以看到语法错误是什么。仔细查看您的 watch 表达式(在此处重新格式化以避免滚动):

if(
    (radioval === "undefined")  ||
    (radioval === null) ||
    (radioval === "null")
)

那不是表达式,而是 if 语句。如果您想将它用作监视表达式,您只需要 inside if 语句中的表达式。也就是说,删除 if( 和最后的 )

关于您正在进行的特定测试,如果没有选择任何元素,jQuery 的 .val() 方法会返回 undefined。请注意,jQuery 文档中有一个错误:它说 .val() 在没有匹配元素时返回 null。这是不正确的;在这种情况下,它返回 undefined。这是 the line of code in the jQuery source返回 undefined(因为它是一个没有值的简单 return;)。

但那是 undefined 值,而不是字符串 "undefined"。您可以使用 radioval === undefined 对此进行测试。或者您可以使用 radioval == null。注意 == 而不是 ===;此测试匹配 nullundefined 值。这可能是最安全的选择,以防 jQuery 团队决定更改代码以匹配文档并开始返回 null 而不是 undefined。 (不太可能,但你永远不知道。)通过测试 radioval == null,它会针对任一值进行测试。

关于javascript - jquery 字符串和逻辑或,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17609565/

相关文章:

javascript - 谷歌散点图只连接几个点

javascript - mmenu 未在链接页面上关闭

javascript - 我在 codeigniter 中的 AJAX 登录表单始终选择 else 语句,即使满足条件也是如此。这些怎么解决呢?

javascript - 渲染子域的 ExpressJS 问题

javascript - 使用 previousSibling 和 nextSibling 设置属性

javascript - 如何在 angularjs 中格式化取决于区域设置的日期?

javascript - 将类添加到已经具有相同类的元素的问题

javascript - 使用 bing map api 获取地址(邮政编码)自动地理定位?

jquery validate 在动态字段名称上显示错误

javascript - 我应该在兑现 promise 之前还是之后更新缓存?