2014-09-26 96 views
0

我有一個表,每一行都是一個窗體。在一行的單元格上是一個刪除按鈕。點擊複選框時,我需要一個jQuery模式對話框確認。 我嘗試了javascipt incuded但只爲第一行工作。從窗體數組中獲取特定的複選框單擊事件

$(document).ready(function(){ 
    $("#dialog").hide(); 
}); 
$('#Wcheckboxcd1').click(function(e) { 
    var form = $("form").attr("id"); 
    $("#dialog").dialog({ 
     buttons : { 
     "Διαγραφή" : function() { 
      document.getElementById(form).submit(); 
      $(this).dialog("close"); 
     }, 
     "Ακύρωση" : function() { 
     document.getElementById(form).Wcheckboxcd.checked = 0; 
      $(this).dialog("close"); 
     } 
     } 
    }); 
}) 
+0

使用類複選框。不要爲多個複選框元素使用相同的ID – 2014-09-26 10:18:47

+0

是的我爲每個表單的所有複選框保留了相同的ID bau如何獲取特定複選框的點擊? – Giorgos 2014-09-26 10:39:30

+0

所有的拳頭,你應該明白,ID應該是唯一的HTML元素。您應該在複選框上添加類,然後使用類來綁定複選框事件,而不是放置標識。用這個來綁定''('。Wcheckboxcd1')' – 2014-09-26 10:52:48

回答

0
  1. 變化:

    var form = $("form").attr("id") 
    

    ...是:

    var form = $(this).closest('tr').find('form').attr('id'); 
    

    這從 「刪除」 按鈕的行內選擇的形式,而不是總第一個form。有關更多信息,請參閱closest()的文檔。

  2. 您正在重新使用ID Wcheckboxcd1。 ID在整個頁面中必須是唯一的。在使用表單時,請使用類,或者使用一個name屬性。

還請注意,這是相當多餘供您使用document.getElementById,當你接近有包含在首位的表單元素的jQuery對象。考慮使用下面的代碼代替;

$('[name="Wcheckboxcd1"]').click(function(e) { 
    $("#dialog").dialog({ 
     buttons : { 
     "Διαγραφή" : function() { 
      $(this).closest('tr').find('form').submit(); 
      $(this).dialog("close"); 
     }, 
     "Ακύρωση" : function() { 
      this.checked = false; 
      $(this).dialog("close"); 
     } 
     } 
    }); 
}) 

。以上假設你已經改變:

<input type="checkbox" id="Wcheckboxcd1" /> 

到:

<input type="checkbox" name="Wcheckboxcd1" /> 
+0

親愛的馬特問題是複選框ID。所有複選框上都有相同的ID。所以$('#Wcheckboxcd1')。click(function(e){is not working。我需要使用$ form。('#Wcheckboxcd1')。click(function(e){但我不知道如何。 – Giorgos 2014-09-26 10:42:18

+0

@Giorgos:看到我的更新。 – Matt 2014-09-26 11:44:10

相關問題