如果在另一个下拉列表中选择,则jquery删除条目选择下拉列表

时间:2012-03-19 20:00:40

标签: jquery html-select

鉴于此html: code 我想在选择d1中选择b,导致选择r1中的选项2不可用(删除)。但是如果刷新页面或在d1中选择了任何其他选项,则r1中的所有选项都应该可用。

Jquery可以实现吗? http://jsfiddle.net/dwvYY/6/

我遇到的一个初始问题是我似乎无法使用我的客户端工具(SharePoint放置在选择标记上)的title属性来引用select。

感谢。

6 个答案:

答案 0 :(得分:2)

也许这段代码片段为您提供了如何实现它的线索,您应该考虑使用intsted的switch语句。

如果您选择b号码3将在其他选择列表中禁用,请查看此小提琴:http://jsfiddle.net/dwvYY/7/

$("select[title$=d1]").change(function (){
    // Reset the options:
    $("select[title$=r1]").children("option").removeAttr("disabled","disabled")
    var selectedValue = $(this).val();
    if(selectedValue =="b"){

        // This will disable one option            
        $("select[title$=r1]").children("option[value='3']").attr("disabled","disabled")
    }
})
​

答案 1 :(得分:2)

您可以按索引禁用选项或隐藏它。 这是我的解决方案: http://jsfiddle.net/PabZk/

通过索引选择选项在较大的列表中是个好主意。

答案 2 :(得分:1)

$(function(){

    $("select[title=d1]").change(function(){

       if($(this).val()=="b")
       {
           $("select[title=r1] option[value='2']").remove();
       }          
       else
       {
              $("select[title=r1] option[value='2']").remove();               
              $("select[title=r1] option[value='1']").after($("<option></option>").attr("value","2").text("2"));
       }               
    });        
})​

工作样本:http://jsfiddle.net/r34Kd/9/

答案 3 :(得分:0)

这应该回答你的两个问题。首先,在你的jsFiddle中,你的代码是在文档的头部而不是onLoad或onDOMready上运行的。其次,当从第一个列表中选择“b”时,此代码应该按照从第二个列表中删除“2”的要求执行:

<强> jsFiddle example

jQuery的:

$('select[title$=r1] option:eq(0)').text("Please Select").val("");
$('select[title$=d1] ').click(function() {
    if ($(this).val() == 'b') {
        $('select[title$=r1] option[value="2"]').remove();
    }
});​

答案 4 :(得分:0)

您需要侦听change事件,以便动态更改值:

$('select[title="rl"]').change(function() {
  var $this = $(this);
  var options = $('' + $this + ' option');
  options.each(function() {
    // perform actions on each option value
  });
});

答案 5 :(得分:0)

您可以在select元素的change事件上有条件地显示/隐藏所需选项。试试这个。

var $selectr1 = $('select[title=r1]');
$('select[title=d1]').change(function(){
    $selectr1.find("option").show();
    if(this.value == "b"){
        $selectr1.find("option[value='2']").hide();
    }
});

工作演示 - http://jsfiddle.net/dwvYY/8/