2012-01-29 30 views
0

我的應用程序使用複選框按類型和區域對結果進行排序。有2個字段集,一個用於類型,另一個用於區域。爲什麼這一點的javascript使我的複選框難以檢查?

區域複選框鏈接到圖像地圖的區域,所以它也可以用來選擇多個區域進行排序。

我有這個JavaScript:

該鏈接的區域複選框和圖像映射的區域,以便它們都充當表單輸入

var $area = $('area'); 
    $area.click(function(){ 
     var $checkbox = $('#' + $(this).data("areanum")); 
     $checkbox.attr('checked', !$checkbox.attr('checked')).button('refresh'); 
    }); 
    $('label').click(function() { 
     $area.filter('[data-areanum="' + $(this).attr('for') + '"]').trigger('click'); 
     return true; 
    });  

這打破了類型複選框(他們不會註冊爲表單提交時被檢查),除非我改變位:

 $('label').click(function() { 
      $area.filter('[data-areanum="' + $(this).attr('for') + '"]').trigger('click'); 
      return false; 
     }); 

 $('label').click(function() { 
      $area.filter('[data-areanum="' + $(this).attr('for') + '"]').trigger('click'); 
      return true; 
     }); 

(改最後一行返回true)

但是這使得複選框難以選擇,他們到一個單一的點擊響應如果單擊蜱地區,但只雙擊如果響應複選框標籤被點擊。

我希望這是有道理的,如果有任何澄清需要我會努力更好地解決問題。

感謝您的任何幫助。

+1

你可以在jsFiddle上發佈相關的功能示例嗎? – 2012-01-29 19:59:22

回答

1

我認爲你不需要labelclick處理程序,因爲在所有你只是通過觸發區域click處理器將由標籤的默認行爲本身得到照顧時,它的for屬性設置爲撥動checkboxchecked財產checkbox ID。

+0

太棒了!非常感謝它現在按預期工作。 – Dave 2012-01-29 21:15:29

相關問題