0
JSFIDDLEjQuery的選擇所有的複選框,如果複選框已被選取不.change()
當您檢查的箱子一個,相應的表格單元格有自己的文字取出,放置在輸入文本值。問題出在select all函數上,因爲它沒有正確地觸發.change()事件。如果選中一個複選框,然後選中「全選」複選框,則會清除單元格值。我怎樣才能確定它是否已經被檢查,不執行.change()函數?
$("#selectall").click(function() {
var checkall = $("#selectall").prop('checked');
if (checkall) {
$('#amazon-update :checkbox').each(function() {
var $this = $(this);
if ($this.is(':checked')) {
//nothing
} else {
$(".checkbox").prop("checked", true).change();
}
});
} else {
$('#amazon-update :checkbox').each(function() {
var $this = $(this);
if ($this.is(':checked')) {
$(".checkbox").prop("checked", false).change();
} else {
//nothing
}
});
}
});
$(".checkbox").click(function() {
if ($(".checkbox").length == $(".checkbox:checked").length) {
$("#selectall").prop("checked", true);
} else {
$("#selectall").prop("checked", false);
}
});
$('#amazon-update :checkbox').change(function() {
var $this = $(this);
// $this will contain a reference to the checkbox
if ($this.is(':checked')) {
// the checkbox was checked
var sku_td = $this.parent().siblings('.sku').text();
var price_td = $this.parent().siblings('.price').text();
var quantity_td = $this.parent().siblings('.quantity').text();
$this.parent().siblings('.price').empty();
$this.parent().siblings('.quantity').empty();
var sku = $('<input type="hidden" name="sku[]" value="' + sku_td + '">');
var price = $('<input type="text" class="form-control" name="price[]" value="' + price_td + '">');
var quantity = $('<input type="text" class="form-control" name="quantity[]" value="' + quantity_td + '">');
$this.parent().siblings('.sku').append(sku);
$this.parent().siblings('.price').append(price);
$this.parent().siblings('.quantity').append(quantity);
} else {
// the checkbox was unchecked
var sku_td = $this.parent().siblings('.sku').children().val();
var price_td = $this.parent().siblings('.price').children().val();
var quantity_td = $this.parent().siblings('.quantity').children().val();
$this.parent().siblings('.sku').empty();
$this.parent().siblings('.price').empty();
$this.parent().siblings('.quantity').empty();
$this.parent().siblings('.sku').append(sku_td);
$this.parent().siblings('.price').append(price_td);
$this.parent().siblings('.quantity').append(quantity_td);
}
});
謝謝!我是如此接近...... – 2014-09-20 04:01:07
沒錯,它發生的解決方案就在那裏,我們就是看不到。 – codebased 2014-09-20 04:10:07