2017-04-04 64 views
0

在一个表中,如何遍历表中的所有dropdowns textid,并将它们保存在数组中。所以,我可以禁用先前选择的选项禁用以前选择的下拉选项,同时检查文本和ID值

一旦一个选项被选中,我不希望它可以再次如何检查选定的文本以前的选定的选项在表中设置该选项在页面中的所有其他下拉菜单中禁用。

(这个问题是来自自检查二者selected text & selected value在表的内部后其禁用其他SO问题不同,需要目标的下拉指定列中)

var allSelectedValuesArray = array(); 
allSelectedValuesArray.push($("#tblVersions .Model option:selected").text()); 

var rows = $("body tr",$("#tblVersions")).map(function() { 
return [$("td:eq(0) input:checkbox:checked",this).map(function() { 
    return this.innerHTML;  
}).get()]; 
}).get(); 

<table id="tblversions"> 
<tbody id="body"> 
    <tr class="rowcss"> 
    <td> 
    <select class="Manufacturer"> 
     <option value="1">Toyota </option> 
     <option value="2">Honda</option> 
     <option value="3">BMW</option> 
    </select> 
    </td> 
    <td> 
    <select class="Model"> 
    <!-- If user selects Honda my Ajax populates Honda Models/Cars like below--> 
     <option value="1">Accord</option> 
     <option value="2">Toyota 2</option> 
     <option value="3">Honda 3</option>   
    </select> 
    </td> 
    </tr> 
    <tr class="rowcss"> 
    <td> 
    <select class="Manufacturer"> 
     <option value="1">Toyota </option> 
     <option value="2">Honda</option> 
     <option value="3">BMW</option> 
    </select> 
    </td> 
    <td> 
    <select class="Model"> 
    <!-- If user selects BMW my Ajax populates BMW models Cars like below--> 
     <option value="1">X5 Suv</option> 
     <option value="2">318 series Cheap</option> 
     <option value="3">540i too expensive!</option>   
    </select> 
    </td> 
    </tr>  
</tbody> 
</table> 
+0

您的JS似乎与您的HTML(不同的类和ID,HTML没有输入元素)相关。你可以请[编辑]你的问题,举一个例子:“当用户从下拉列表中选择* x * *时,会发生以下情况......”? – nnnnnn

+0

问题没有那么清楚 – JYoThI

+0

@nnnnnn我编辑了这个问题 - 我想禁用任何其他选择的选项,我该怎么做? *我想比较'text'和'value'是否相同*。这是一个级联下拉 - 因此,在一些情况下*如果他们选择另一个制造商,则可能有重叠的型号ID *(但不同的制造商ID)*,例如, '本田可以有价值3 = Accord',而在差异制造'丰田值3 =凯美瑞',所以我需要确保我检查文本和价值 - 然后禁用选项 – aggie

回答

1

我不明白你的问题的第二部分,但如果你想获得所有下拉的文本和值,你可以做这样的事情。

// Called when any of the dropdowns change 
("#tblversions").change(function() { 
    var allSelectedValuesArray = []; 

    // Search for all selects in the #tblversions 
    $("#tblversions select option:selected").each(function() { 
     // for each one, push it into the array 
     allSelectedValuesArray.push({text:$(this).text(), value:this.value}); 
    }); 
}); 

这将在格式对象的数组{文字:“someValue中”:“SomeText”则会,值}对每个表中的下拉菜单的。

+0

嗨,感谢我编辑我的问题,我想禁用任何其他选择的选项,我该怎么做? *我想比较文本和价值是否相同*在某些情况下,如果他们选择另一个制造商,则可能存在重叠的ID,例如,本田可能有价值3 =协议,但丰田价值3 =佳美,所以我需要确保我检查文本和价值 – aggie