下面几行代码有什么问题...
它一直提示系统错误..之类的
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;
}
}
感谢您的帮助。
最佳答案
您的代码中没有语法错误。如果代码有语法错误,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
。注意 ==
而不是 ===
;此测试匹配 null
和 undefined
值。这可能是最安全的选择,以防 jQuery 团队决定更改代码以匹配文档并开始返回 null
而不是 undefined
。 (不太可能,但你永远不知道。)通过测试 radioval == null
,它会针对任一值进行测试。
关于javascript - jquery 字符串和逻辑或,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17609565/