2011-02-04 137 views
0

我試圖編寫代碼,如果焦點已經離開文本字段的類爲「強制性」,並且該字段爲空,則會發出警報聲。jQuery類選擇器問題

基本上,如果用戶在不寫任何內容的情況下離開強制文本字段,它會提示他們。

這裏是我的代碼,這是行不通的:

$(document).ready(function(){ 
     $('.mandatory').blur(function(){ 
      if($(this.id).val() == "") 
      { 
        alert('Field:' + this.id + ' is mandatory!'); 
      } 
     }); 
    }); 

回答

2

您使用this.id時,你應該使用this

if($(this).val() == "") 
{ 
    alert('Field:' + this.id + ' is mandatory!'); 
} 

要解釋一下:在事件處理中,this是事件被觸發的DOM元素。正如你可以從$函數的文檔中看到的(注意jQuery函數和$函數是一樣的),你可以使用DOM元素來構建一個jQuery選擇。

請注意,您可以通過丟棄jQuery構造函數並簡單地使用this.value來進一步優化它。

1

假設你正在使用jQuery:

$(document).ready(function(){ 
    $('.mandatory').blur(function(){ 
     if($(this).val() == "") { 
      alert('Field:' + $(this).attr('id') + ' is mandatory!'); 
     } 
    }); 
}); 
+1

[見這裏演示(http://jsfiddle.net/Scoobler/K3GCT/) – Scoobler 2011-02-04 08:51:33

1

您的代碼習慣,如果用戶輸入了工作的空白

使用

$ .trim()

改爲

$(document).ready(function(){ 
     $('.mandatory').blur(function(){ 
      if($.trim($(this).val()) == "") 
      { 
        alert('Field:' + this.id + ' is mandatory!'); 
      } 
     }); 
    }); 
0

猜你試着這樣做

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.js"></script> 

<script> 
$(function(){ 
    $('.mandatory').each(function(){ 
     $(this).blur(
     function(){ 
      if($(this).val() == ""){ 
       alert("empty"); 
      } 
     }) 
    }); 

}); 
</script> 


<div id='header'> 
<input type="text" class="mandatory"/> 
<input type="text" class="mandatory"/> 
<input type="text" class="mandatory"/> 
<input type="text" class="mandatory"/> 
<input type="text" class="mandatory"/> 
<input type="text" class="mandatory"/> 
<input type="text" class="mandatory"/> 
</div> 

,這是工作