如果在任何选择中选择了某个选项,我正在尝试禁用该选项
例如,如果name="select1“选择了选项”Test2“,那么我希望在两个select语句中禁用”Test2“...如果检查到其他选项,则会重新启用前一个选项。
我已经在这里写了一个样例脚本,我认为它会让我“接近”……但这让我大错特错了。任何帮助都将不胜感激。
<script type="text/javascript">
$(document).ready(function(){
$("select").change(function() {
$("select").find("option:selected").attr('disabled', true);
});
});
</script>
<select name="select1">
<option>No Match</option>
<option value="1">Test</option>
<option value="2">Test 2</option>
<option value="3">Test 3</option>
</select>
<select name="select2">
<option>No Match</option>
<option value="1">Test</option>
<option value="2">Test 2</option>
<option value="3">Test 3</option>
</select>
发布于 2011-01-06 08:33:40
试试这个:
$(document).ready(function(){
$("select").change(function() {
$("select").not(this).find("option[value="+ $(this).val() + "]").attr('disabled', true);
});
});
如果您想启用以前禁用的选项(当从其他组合中取消选择该值时),请使用此增强版本:
$(document).ready(function () {
$("select").change(function () {
var $this = $(this);
var prevVal = $this.data("prev");
var otherSelects = $("select").not(this);
otherSelects.find("option[value=" + $(this).val() + "]").attr('disabled', true);
if (prevVal) {
otherSelects.find("option[value=" + prevVal + "]").attr('disabled', false);
}
$this.data("prev", $this.val());
});
});
发布于 2017-03-09 05:26:51
如果您有两个以上,请选择:
$('select').on('change', function() {
$('select option').removeAttr('disabled');
$('select').each(function(i, elt) {
$('select').not(this).find('option[value="'+$(elt).val()+'"]').attr('disabled', true);
});
});
https://stackoverflow.com/questions/4610652
复制相似问题