Jquery - Jquery 2 个下拉列表,从第二个列表中删除第一个选定的选项
Jquery - Jquery 2 dropdown lists, remove 1st selected option from 2nd list
我使用此代码允许我 select 从下拉列表 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');
禁用选项有效,而不是隐藏它们。
$("#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);
})
我使用此代码允许我 select 从下拉列表 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');
禁用选项有效,而不是隐藏它们。
$("#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);
})