2016-07-15 119 views
0

下面是我已经动态创建两个下拉列表的代码。如果我选择第二个下拉列表,我希望获得第一个下拉列表选定的值。如果我选择第二个下拉框,如何获得第一个下拉框值

下面是HTML:

<div class="selct_drp_dwn" id="row1"> 
    <select class="drop_dwn_mult" id="name1" onchange="changeBox2(this);"> 
     <option>Sample1</option> 
     <option>Sample2</option> 
     <option>Sample3</option> 
     <option>Sample4</option> 
    </select> 
    <select class="drop_dwn_mult1" id="name1" onchange="changeBox3(this);"> 
     <option>Please select</option> 
     <option>sam</option> 
    </select> 
    <i class="fa fa-minus-square remove" aria-hidden="true"></i> 
    <i class="fa fa-plus-square" aria-hidden="true" id="btnAdd"></i> 
</div> 

下面是jQuery的我想:

function changeBox3(val1) 
{ 
    var a = val1.id; 
    alert(a); 
    var c = '#'+a;  
    var b = $(c).closest('select .drop_dwn_mult option:selected').val(); 
    alert(b);//I am getting undefined 
} 

回答

1

问题是与最接近的方法。它应该是:

.closest('.selct_drp_dwn') 

,然后你会发现选择:

.find('.drop_dwn_mult').not(val1).find('option:selected') 

考虑到这一点,你仍然可以短您的代码:

function changeBox3 (val1) 
{ 
    var a = $(val1); // <- you passed `this` to val1 which is already a reference 
        // to the element, thus not need to find the id 
    var b = a 
      .closest('.selct_drp_dwn') 
      .find('.drop_dwn_mult') 
      .not(val1) 
      .find('option:selected') 
      .val(); 
    alert(b); 
} 

另一个问题:ID必须是唯一的,您有重复的name1

+0

感谢它的工作正常..我会改变ID – saminathan

+0

很高兴听到:) –

+0

嗨Guedes ..我还有一个问题,如果我有一个提交按钮,一旦得到提交如何我会从两个选定的值作为单一值下拉 – saminathan

相关问题