我使用此代码允许我从下拉列表1中选择一个条目,并从下拉列表2中删除相同的条目。
$("#BoxName").change(function(){
var selectedItem = $(this).val();
var nextDropdown = $(this).parent("td").next("td").find("select.BoxComparisonClass");
$(nextDropdown).find("option").show();
$(nextDropdown).find("option:[value="+selectedItem+"]" ).hide();
})
这可以在这里工作: http://jsfiddle.net/8kvesskv/5/
这适用于Chrome& Firefox但不在Internet Explorer& Safari浏览器。
任何方式我都可以在所有四种浏览器中使用它?
如果没有其他方法可以做到这一点?
由于
**更新** 这似乎适用于IE。不是隐藏它而是禁用,这对我来说应该有用。
$("#BoxName").change(function () {
var selectedItem = $(this).val();
var nextDropdown = $(this).parent("td").next("td").find("select.BoxComparisonClass");
$(nextDropdown).find("option").attr('disabled', false);
$(nextDropdown).find("option:[value=" + selectedItem + "]").attr('disabled', true);
})
唯一的问题是,当行重复时,禁用的值也会重复。如何复制行,但新行中的所有选项都可用?
更新
将以下代码添加到我的代码中似乎有效:
$newRow.find('*').andSelf().removeAttr('id').removeAttr('disabled');
答案 0 :(得分:0)
禁用选项有效,而不是隐藏它们。
$("#BoxName").change(function () {
var selectedItem = $(this).val();
var nextDropdown = $(this).parent("td").next("td").find("select.BoxComparisonClass");
$(nextDropdown).find("option").attr('disabled', false);
$(nextDropdown).find("option:[value=" + selectedItem + "]").attr('disabled', true);
})