2013-08-27 44 views
1

我有三個複選框,看起來像這樣:jQuery的只註冊一個ID

<input id="image_tagging" class="1" type="checkbox" value="1" checked="checked" name="data[image_tagging]"> 

現在我想創造一些Ajax(這是工作的罰款),但只有第一個複選框有一個事件:

這裏是我的jquery功能:

$('#image_tagging').click(function(){ 
    var value = 0; 
    var websiteID = $(this).attr('class'); 
    if($(this).attr('checked')){ 
     value = 4; 
    }else{ 
     value = -4; 
    } 
    alert('works! '+'id = '+websiteID+" value = "+value); 
}); 

所以我的問題是。爲什麼這個點擊功能只發生在我的其中一個複選框上? (如果它很重要,它只是第一個複選框正在工作)

+0

我不是太熟悉你的代碼,但什麼,如果你嘗試使用,而不是ID級別? – SaturnsEye

+0

如果所有人都有相同的ID它將如何工作,請嘗試更改ID,因爲他們需要是唯一的 – Rex

回答

3

id s必須在html頁面上是唯一的。相反,在標記中使用類並在jQuery中使用類選擇器。

HTML

<input class="image_tagging 1" type="checkbox" value="1" checked="checked" name="data[image_tagging]"> 

的Javascript

$('.image_tagging').click(function(){ 
    var value = 0; 
    var websiteID = $(this).attr('class'); 
    if($(this).attr('checked')){ 
     value = 4; 
    }else{ 
     value = -4; 
    } 
    alert('works! '+'id = '+websiteID+" value = "+value); 
}); 
3

的ID必須是唯一的更改ID到類,而不是

id="image_tagging" 

class="image_tagging" 

然後

$('.image_tagging').click(function(){ 
+0

Ahh好的謝謝! –

1

在HTML

<input class="image_tagging" type="checkbox" value="1" checked="checked" name="data[image_tagging]"> 

在JS

$('.image_tagging').click(function(){ 
// your code 

}); 
0

id必須b Ë獨特,使用類,而不是或試試這個...

$('input[type="checkbox"]').click(function(){ 
    var value = 0; 
    var websiteID = $(this).attr('class'); 
    if($(this).attr('checked')){ 
     value = 4; 
    }else{ 
     value = -4; 
    } 
    alert('works! '+'id = '+websiteID+" value = "+value); 
}); 

沒有必要改變你已經寫任何代碼HTML ...

0

ID應該在你的DOM結構獨特。使用class而不是ID來表示這樣的事情。

<input id="image_tagging" class="img_tagging 1" type="checkbox" value="1" checked="checked" name="data[image_tagging]"> 

然後代替#image_tagging使用.image_tagging結合的Click事件

$('.image_tagging').click(function(){