2016-09-27 120 views
0

我有選擇下拉菜單和選項是這樣的:如果沒有選擇選項語句

<div class="input-field"> 
<span class="icon-area"></span> 
<select> 
    <option value="0">list 0</option> 
    <option value="1">list 2</option> 
    <option value="2">list 3</option> 
</select> 

,如果列表0未選擇我要添加CSS樣式,但我的js代碼不工作

$("select").blur(function() { 
     $(this).parents(".input-field").removeClass("form-border"); 
     $(this).parents(".input-field").find(".icon-area").removeClass("form-background"); 

     if(this.value){ 
      $(this).parents(".input-field").addClass("form-border"); 
      $(this).parents(".input-field").find(".icon-area").addClass("form-background"); 
      return false; 
     }else{ 
      $(this).parents(".input-field").removeClass("form-border"); 
      $(this).parents(".input-field").find(".icon-area").removeClass("form-background"); 
      return false; 
     } 
    }); 

有什麼不對?

+5

'this.value'可能需要將'$(本).VAL()'' –

+0

$(本).VAL()= 「0」'可以縮寫爲'$(this).val()'。除非'0'代表「沒有價值」,否則jQuery中的所有內容都是真實的。 –

+1

'this.value'返回字符串,而'「0」'實際上在js中。只有字符串爲空是字符串 –

回答

2

嘗試用這種替代:

$("select").change(function() { 
     $(this).parents(".input-field").removeClass("form-border"); 
     $(this).parents(".input-field").find(".icon-area").removeClass("form-background"); 

     if(this.value==0){ 
      $(this).parents(".input-field").addClass("form-border"); 
      $(this).parents(".input-field").find(".icon-area").addClass("form-background"); 
      return false; 
     }else{ 
      $(this).parents(".input-field").removeClass("form-border"); 
      $(this).parents(".input-field").find(".icon-area").removeClass("form-background"); 
      return false; 
     } 
    });