我正在写一个包含css的if / else语句。 if部分有效,但else部分无效。我做错了什么,有人可以指导我谢谢吗?!
这是我的陈述。
if(!$(#ron.val()){
$("#ron_lan").attr("disabled",true).css({"opacity":0.3});
}
else{
alert('else');
$("select#ron_lan").attr("disabled",false).css({"opacity":1});
}
答案 0 :(得分:5)
$(#ron.val()
无效,并且始终为false。它应该是
$('#ron').val()
注意括号和引号。在这种情况下,#ron
是选择器。
另外,请勿使用attr('disabled', false)
。您应该只使用removeAttr('disabled')
答案 1 :(得分:1)
取决于#ron
的价值。如果是输入,则可能的值为text,empty或spaces。
例如:
!"" // Negating an empty string gives you TRUE
!" " // Negating a space gievs you FALSE
!"any text 123" // Negating any text gives you FALSE
!undefined // Negating undefined gives you TRUE, read on...
它还可以取决于#ron
的存在。如果标识为#ron
的元素不存在,或者没有"值"属性(不是输入)。 jQuery将始终返回undefined
,这可以解释为什么!undefined
将始终返回true并且永远不会到达else
路径。
回顾:
#ron
例如。 $('#ron').length
应返回1 #ron
是输入还是文本区域,以便$('#ron').val()
不会返回undefined