link 两个选定的字段如何相互删除选项
How link two chosen fields removing options from each other
我有两个字段具有相同的选项。我想确保当用户从其中一个选项中选择一个选项时,相反的字段将删除相同的选项。
因此,如果用户选择 T.Edson 作为 Recipient
,此选项将在 CCs
字段中删除。
我尝试了下面有人说的 here 但似乎不起作用。
function checkAddressFields() {
var recipientField = $('#id_recipient');
var ccsField = $('#id_ccs');
console.log("Removing duplicate");
$("#id_ccs option[value='"+recipientField.val()+"']").remove();
ccsField.trigger("chosen:updated");
}
$('#id_recipient').on('change', checkAddressFields);
$('#id_ccs').on('change', checkAddressFields);
在没有看到完整代码的情况下,它可能有点棘手,但是尝试这样的事情(确保 recipientField.val() 被传递给 checkAddressFields()):
$("#id_ccs option[value='+recipientField.val()+']").remove();
试试这个例子..
$select = $('.select');
$select.on('change', function() {
var val = $(this).val();
$notThis = $select.not($(this));
$notThis.find('option').show();
$notThis.find('option[value=' + val + ']').hide();
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select class="select">
<option>Select rec</option>
<option value="option1">Option 1</option>
<option value="option2">Option 2</option>
<option value="option3">Option 3</option>
<option value="option4">Option 4</option>
<option value="option5">Option 5</option>
</select>
<select class="select">
<option>Select cc</option>
<option value="option1">Option 1</option>
<option value="option2">Option 2</option>
<option value="option3">Option 3</option>
<option value="option4">Option 4</option>
<option value="option5">Option 5</option>
</select>
我有两个字段具有相同的选项。我想确保当用户从其中一个选项中选择一个选项时,相反的字段将删除相同的选项。
因此,如果用户选择 T.Edson 作为 Recipient
,此选项将在 CCs
字段中删除。
我尝试了下面有人说的 here 但似乎不起作用。
function checkAddressFields() {
var recipientField = $('#id_recipient');
var ccsField = $('#id_ccs');
console.log("Removing duplicate");
$("#id_ccs option[value='"+recipientField.val()+"']").remove();
ccsField.trigger("chosen:updated");
}
$('#id_recipient').on('change', checkAddressFields);
$('#id_ccs').on('change', checkAddressFields);
在没有看到完整代码的情况下,它可能有点棘手,但是尝试这样的事情(确保 recipientField.val() 被传递给 checkAddressFields()):
$("#id_ccs option[value='+recipientField.val()+']").remove();
试试这个例子..
$select = $('.select');
$select.on('change', function() {
var val = $(this).val();
$notThis = $select.not($(this));
$notThis.find('option').show();
$notThis.find('option[value=' + val + ']').hide();
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select class="select">
<option>Select rec</option>
<option value="option1">Option 1</option>
<option value="option2">Option 2</option>
<option value="option3">Option 3</option>
<option value="option4">Option 4</option>
<option value="option5">Option 5</option>
</select>
<select class="select">
<option>Select cc</option>
<option value="option1">Option 1</option>
<option value="option2">Option 2</option>
<option value="option3">Option 3</option>
<option value="option4">Option 4</option>
<option value="option5">Option 5</option>
</select>