代码之家  ›  专栏  ›  技术社区  ›  Retrocoder

使用html下拉列表按值获取正确的显示文本

  •  0
  • Retrocoder  · 技术社区  · 14 年前

    '<select id="ifmgr_tr_Field">' +
    '<option value="DeviceId">Device ID</option>' +
    '<option value="DeviceMac">Device MAC</option>' +
    '<option value="DeviceType">Device Type</option' +
    '</select>';
    

    假设我有一个DeviceMac值,我想从这个列表中得到的是DeviceMac。记住,我不想使用列表来显示此时的值。

    我可以这样做,但感觉有点脏。

    var item = $('#ifmgr_tr_Field')[0] ;
    item.value = field; // field would be the value I have, EG “DeviceMac”
    var text = item.options[item.selectedIndex].text; // This will give me “Device MAC” which is what I want.
    
    2 回复  |  直到 14 年前
        1
  •  1
  •   Jsinh    14 年前

    我希望这会有帮助。它还有一个if条件。但正如您所说,列表框中的值不会改变。它使用列表作为查找,并查找选项文本为“Device MAC”的选项。嗯。。。我使用jQuery是因为它有一个比传统javascript更好的循环(每个)函数。

        $('#ifmgr_tr_Field option').each(function () {
            var option = this;
            if(option.text == 'Device MAC')
            alert(option.text + " Value : " + option.value);
        }); 
    
        2
  •  0
  •   Dutchie432    14 年前

    我不确定你想在JS函数中做什么,但是你需要添加

    '<select onchange="doTheFunction(this.value);" id="ifmgr_tr_Field">' + ...
    

    然后在JS代码中:

    function doTheFunction(val){
    
       //val will hold the newly selcted value
    
       if (val=="DeviceId"){
          //do something for DeviceId
    
       } else if (val=="DeviceMac"){
          //do something for DeviceMac
    
       } else if (val=="DeviceType"){
          //do something for DeviceType
    
       }
    }