如何限制在jQuery座位图表中选择座位的数量
问题描述:
使用jQuery座位图表为机票预订系统配置Iam。如何限制在jQuery座位图表中选择座位的数量
var $cart = $('#selected-seats'),
$counter = $('#counter'),
$total = $('#total'),
sc = $('#seat-map').seatCharts({
map: [
'aaaaaaaa__aaaaaaa',
'aaaaaaaa__aaaaaaa',
'aaaaaaaa__aaaaaaa',
'aaaaaaaa__aaaaaaa',
'aaaaaaaa__aaaaaaa',
'aaaaaaaa__aaaaaaa',
'aaaaaaaa__aaaaaaa',
'aaaaaaaa__aaaaaaa',
'aaaaaaaa__aaaaaaa',
'aaaaaaaa__aaaaaaa',
'aaaaaaaa__aaaaaaa',
'aaaaaaaa__aaaaaaa',
'aaaaaaaa__aaaaaaa',
'aaaaaaaa__aaaaaaa',
'aaaaaaaa__aaaaaaa',
'aaaaaaaaaaaaaaaaa'
],
seats: {
a: {
price : 50,
classes : 'first-class', //your custom CSS class
category: 'First Class'
}
},
naming : {
top : false,
getLabel : function (character, row, column) {
return firstSeatLabel++;
},
},
legend : {
node : $('#legend'),
items : [
[ 'a', 'available', 'First Class' ],
[ 'a', 'unavailable', 'Already Booked']
]
},
click: function() {
if (this.status() == 'available') {
//let's create a new <li> which we'll add to the cart items
/*$('<li>'+this.data().category+' Seat # '+this.settings.label+': <b>$'+this.data().price+'</b> <a href="#" class="cancel-cart-item">[cancel]</a></li>')
.attr('id', 'cart-item-'+this.settings.id)
.data('seatId', this.settings.id)
.appendTo($cart);*/
$('<span class="badge badge-primary">'+this.settings.label+'</b></span>')
.attr('id', 'cart-item-'+this.settings.id)
.data('seatId', this.settings.id)
.appendTo($cart);
$counter.text(sc.find('selected').length+1);
$total.text(recalculateTotal(sc)+this.data().price);
return 'selected';
} else if (this.status() == 'selected') {
//update the counter
$counter.text(sc.find('selected').length-1);
//and total
$total.text(recalculateTotal(sc)-this.data().price);
//remove the item from our cart
$('#cart-item-'+this.settings.id).remove();
//seat has been vacated
return 'available';
} else if (this.status() == 'unavailable') {
//seat has been already booked
return 'unavailable';
} else {
return this.style();
}
}
});
图表已成功集成,但我无法找到和文件相关的如何限制客户的座位选择数量。即如果顾客输入票数= 4,则他应该只被允许选择4个座位。
任何帮助,将不胜感激。提前致谢。
答
click: function() {
if (this.status() == 'available' && selectedSeats.length < <?php echo $tickets ?>) {
return 'selected';
} else if (this.status() == 'selected') {
return 'available';
} else if (this.status() == 'unavailable') {
return 'unavailable';
} else {
return this.style();
}
}