以下代码行有什么问题......
它一直抱怨systax错误......就像那样
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;
}
}
感谢您的帮助。
答案 0 :(得分:2)
代码中没有语法错误。如果代码有语法错误,Firebug控制台(而不是Watch面板)中会出现错误消息,代码根本不会运行。你永远不会到达你的断点。
屏幕截图中的语法错误位于 watch 表达式中。删除监视表达式,这些错误消息将消失。
在更新的屏幕截图中,我可以看到语法错误。仔细查看您的监视表达式(在此重新格式化以避免滚动):
if(
(radioval === "undefined") ||
(radioval === null) ||
(radioval === "null")
)
这不是表达,而是if
声明。如果要将其用作监视表达式,则只需要表达 in 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
,它将测试任一值。
答案 1 :(得分:0)
.val()
会返回字符串值null
或Array
,因此您可以尝试:
if (/null|undefined/i.test(radioval) || !radioval.length){ /*...*/ }
由于您似乎检查了[{1}}中的[{1}}被检查,因此也可能
$("input[name=certificateradio]")
甚至更短
if( ( !$("input[name=certificateradio]:checked").length ) {
$("#login_error").text("please select the signin certificate");
return false;
}
答案 2 :(得分:0)
尝试
if( (typeof radioval === "undefined") || (radioval === null) || (radioval == "null") ) {
答案 3 :(得分:0)
在第三次无线电比较中 radioval ==“null”而不是=== null
答案 4 :(得分:0)
$( “输入[名称= certificateradio]:检查”)VAL();如果未选中,则返回undefined(typeof undefined === undefined)或“on”(typeof“on”=== string)如果已选中。
一个小例子:
<input name="certificateradio" type="checkbox" />
<button>run</button>
$("button").click(function(){
console.log($("input[name=certificateradio]:checked").val());
console.log(typeof $("input[name=certificateradio]:checked").val());
});
尝试使用:
if($("input[name=certificateradio]:checked").val() ==="on"){
...
}