2014-06-25 82 views
1

所以我有一個AJAX搜索形式,給出了一個複選框結果: 下面是每個搜索結果的PHP代碼的一部分:如何檢查2個複選框具有相同的名稱

<input type="checkbox" class="lovkrav_checkbox checkbox_search" name="lovkrav['.$lovkrav_id.']" value="'.$lovkrav_id.'" orig-id="lovkrav'.$lovkrav_id.'" id="lovkravs'.$lovkrav_id.'" '.$checked.'/> 

且有雙胞胎複選框已經在網站上有相同的名稱,但具有不同的ID。 通過使用「原始編號」屬性我得到雙胞胎複選框的編號。兩個複選框都具有相同的類別lovkrav_checkbox

我來雙點複選框檢測點擊事件,因爲它應該但不是你點擊的複選框! 下面是代碼:

$(document).on("click",".lovkrav_checkbox",function(e){ 
    toggle_id = document.getElementById($(this).attr("orig-id"));   
    $(toggle_id).trigger("click"); 
}); 

當一個複選框,用戶點擊我想實現的是 - 雙複選框(在一個具有相同名稱的屬性)將被選中/取消爲好。

我在做什麼錯?

+1

我不明白你正在嘗試做的,請編輯你的問題和澄清。 –

+0

我想要實現的是當用戶點擊一個複選框時 - 雙複選框(具有相同名稱屬性的複選框)也將被選中/取消選中。 – trojan

+0

@trojan這裏的缺點是,如果你的網頁加載了一個複選框選中。是可能的情況?在這種情況下,你想每次點擊檢查未選中和未選中檢查? – webkit

回答

5

用vanilla javascript更容易切換選中的狀態。

HTML

<input type="checkbox" name="test"> 
<input type="checkbox" name="test"> 

JS

//All of the checkboxes 
var $checkboxes = $("input[type=checkbox][name=test]"); 

//The event handler 
$checkboxes.on("click", function() { 
    //Get the state of the check box you clicked 
    var checkedState = this.checked 

    //Make it the state of all the checkboxes 
    $checkboxes.each(function() { 
     this.checked = checkedState; 
    }); 
}); 

這裏是fiddle

+0

我得到這個錯誤:錯誤:語法錯誤,無法識別的表達式:input [type = checkbox] [name = lovkrav [621]] – trojan

+1

我知道了,必須在配額中跳過名稱:var $ checkboxes = $(「輸入[類型=複選框] [NAME = \ ' 「+ $(本).attr(\ '名\')+」 \']「); – trojan

+0

您可能希望將$ checkboxes選擇器更改爲生產中更具體一些。也許嘗試'.lovkrav_checkbox [name = \'「+ $(this).attr(\'name \')+」\']' – bottens

2

你可以試試這個:

DEMO

$(document).on("click",".check",function(e){ 
    $("."+this.className).prop("checked", this.checked); 
}); 
+0

這不會做,因爲它切換所有複選框具有相同的類 – trojan

0

試試這個

$("input[type=checkbox][name=test]").prop("checked",true); 
1

試試這個太:

JS:

$(document).on("click",".lovkrav_checkbox",function(e){ 
    toggle_id = $(this).attr("name"); 
    isChecked = $(this).prop("checked"); 
    $("input:checkbox").each(
     function(){ 

      if($(this).attr("name") == toggle_id && isChecked){ 
       $(this).prop("checked",true); 
      } 
      else{ 
       $(this).prop("checked",false); 
      } 
     }); 
}); 

fiddle

相關問題