2014-04-02 57 views
0

我在使用ifelse條件在jQuery中處理複選框。 我的條件是至少選中了一個複選框,之後alert if條件正在運行,而不是另一個。這裏是我的代碼如果其他條件不工作在jQuery

$(document).ready(function() { 
    $('#outer_menu').click(function() { 
    var $fields = $(this).find('input[name="mychoice"]:checked'); 
    if (!$fields.length) { 
     alert('You must check at least one box!'); 
     if(".a:checked "){ 
     $(".language").find(".translate-language").toggleClass("translate-language translate-language_show"); 
     } else if (".a_orignal:checked") { 
     $(".language").find(".orignal-language_hide").toggleClass("orignal-language_hide orignal-language"); 
     } else { 
     alert('chose one'); 
     } 
     return false; 
    } 
    }); 
}); 

我們否則,如果條件不工作時,如果條件爲假

+3

您傳遞一個字符串,如果條件將永遠是 –

回答

2

我想你正在嘗試做的是檢查與a類或a_original元素是否被選中,對於你需要

if ($(".a").is(":checked ") { 
    $(".language").find(".translate-language").toggleClass("translate-language translate-language_show"); 
} else if (".a_orignal").is(":checked") { 
    $(".language").find(".orignal-language_hide").toggleClass("orignal-language_hide orignal-language"); 
} else { 
    alert('chose one'); 
} 
  • 使用.is()檢查元素是否滿足給定的選擇
  • 你需要獲取jQuery對象目標元素
+0

你怎麼這麼快格式化代碼truthy? –

+0

我想你應該給機會讓其他開發人員考慮這個問題,因爲每次我們看到問題,並在你短時間內開始思考你的答案:P – Neel

0

看這行代碼:

if(".a:checked ") 

我相信它應該是:

if ($(".a:checked ")) 

這也許不是儘管你的問題結束了,除非你是一個班級而不是你打算選擇鏈接。

同樣的問題在這裏:

else if (".a_orignal:checked") 
0

更改爲:

if($(".a").is(":checked")){ 

和:

else if ($(".a_orignal").is(":checked")){ 
0

.prop()方法獲取在匹配集的第一個元素的屬性值。

寫:

if(".a").prop("checked"){ 
    $(".language").find(".translate-language").toggleClass("translate-language translate-language_show"); 
} 
else if (".a_orignal").prop("checked"){ 
    $(".language").find(".orignal-language_hide").toggleClass("orignal-language_hide orignal-language"); 
}