2014-12-22 104 views
1

这是我的代码。此代码不适用于Mozilla Firefox浏览器。复选框更改事件不工作在Firefox中jquery

我的HTML

<input class="staff_check" name="select_staff" type="checkbox" value="@Model.Caregivers[i].AgencyUserID" /> 

脚本

 var selected_staff = []; 
     var selected_staff_names = []; 
     $('input[name="select_staff"').change(function() { 
      console.log('ds'); 
      if (this.checked) { 
       selected_staff.push($(this).val()); 
       selected_staff_names.push('<span class="selected_staff">' + $(this).parent('label').text().trim() + '</span>'); 
      } 
      else { 
       var idx = $.inArray($(this).val(), selected_staff); 
       if (idx > -1) { 
        selected_staff.splice(idx, 1); 
        selected_staff_names.splice(idx, 1); 
       } 
      } 
     }); 

这在谷歌浏览器工作正常。但它不适用于Mozilla Firefox。

+0

的http://的jsfiddle。 net/QnFg3/1/ – Manoj

+0

http://jsfiddle.net/stackmanoj/gj6ramg2/6/ @Mano z – Manoj

回答

2

你错过右方括号 ']',更改:

... 
$('input[name="select_staff"').change(function() { 
.... 

... 
$('input[name="select_staff"]').change(function() { 
... 
+0

感谢它的工作 – Manoj

1

代替change()功能,尝试click()

var selected_staff = []; 
     var selected_staff_names = []; 
     $('input[name="select_staff"]').click(function() { 
      console.log('ds'); 
      if (this.checked) { 
       selected_staff.push($(this).val()); 
       selected_staff_names.push('<span class="selected_staff">' + $(this).parent('label').text().trim() + '</span>'); 
      } 
      else { 
       var idx = $.inArray($(this).val(), selected_staff); 
       if (idx > -1) { 
        selected_staff.splice(idx, 1); 
        selected_staff_names.splice(idx, 1); 
       } 
      } 
     }); 
+0

这不适合我 – Manoj

+0

它为我工作,谢谢。更改事件在Firefox 39.0(Linux)上不起作用。 – juanra