如果else语句与else部分不起作用

时间:2015-07-05 21:43:36

标签: jquery

我正在写一个包含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});    
}

2 个答案:

答案 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路径。

回顾:

  1. 检查html上是否存在#ron例如。 $('#ron').length应返回1
  2. 检查#ron是输入还是文本区域,以便$('#ron').val()不会返回undefined
  3. 检查textarea中的值并修剪它以避免空格与空字符串方案
相关问题