在我的应用程序中,用户选择不同的团队和基于球队,他选择了一些球员。现在用户正在更新他的团队选择。自从他选择了“皇家挑战者”团队&一些球员。他不允许这样做,一旦他将球员从“皇家挑战者”或任何球队中移除,那么他将被允许更新他的球队选择。 因此,在更新他的团队之前(在onChange()之前),我正在检查玩家的数量和数量。如果玩家数量大于1,则显示弹出窗口通知他移除玩家。 现在点击“确定”,他应该看到之前选择的球队名称。
这是我的代码。
const prevSelected = $('#teams :selected').map(function() {return $.trim($(this).text())}).get();
//prev selected value is : Kolkata,Delhi,Royal Challengers
$('#teams').on('change', function(){
const selected = $('#teams :selected').map(function() {return $.trim($(this).text())}).get();
var count = $("#teamName").find("br").length;
if(count >= 1){
//here user is updating his team.
if( selected.indexOf('Royal Challengers') == -1){
alert("There are currently "+count+" players with "+ teamName +". These players must be migrated to a different teams before you can remove the Team 'Royal Challengers' from this Tournament");
// code to get the previous selected players
return;
}
}
}
我尝试了这个但是没有用 -
if(count >= 1){
//user changes, if the new selected option contains other than "Royal Challengers" then display the pop up & clicking on "OK" display the previous selected teams.
if( selected.indexOf('Royal Challengers') == -1){
alert("-------");
$(prevSelected).prop('selected', true);
}
}
请帮忙。
答案 0 :(得分:0)
这解决了我的问题 -
for(var i=0;i<selected.length;i++){
if(selected[i]!=''){
$('option:contains('+selected[i]+')').prop('selected', false);
}
}
for(var i=0;i<prevSelected.length;i++){
if(prevSelected[i]!=''){
$('option:contains('+prevSelected[i]+')').prop('selected', true);
}
}