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

select元素应返回2个值

  •  1
  • Kennethvr  · 技术社区  · 16 年前

    我有一个包含选项的选择框。选项的值获取在每个选项中显示的项的ID。
    我有一个其他的值应该链接到这个选项上。有简单的方法吗?

    <select id="category" name="data[cat]">
    <option value="12" label="0">A</option>
    <option value="7" label="0">B</option>
    </select>
    

    我尝试在标签属性中输入第二个值,但问题是我不知道获取所选选项标签值的正确方法。 这是用jquery编写的。

    要获取所选选项,我使用:

    $("#category").livequery('change', function () {            
          var catId = ($(this)[0].value); 
    });
    

    这很好,但我不知道如何获取所选选项的标签值。 或者是解决这个问题的更好方法。

    2 回复  |  直到 12 年前
        1
  •  4
  •   community wiki David Grant    16 年前

    这个 label 某些浏览器使用属性来显示选项的内容,因此列表框可能会显示两个 0 选项。

    更好的解决方案可能是执行以下操作:

    <select id="category" name="data[cat]">
        <option value="12,0">A</option>
        <option value="7,0">B</option>
    </select>
    

    并拆分事件处理程序中的值,例如

    $("#category").livequery('change', function () {            
        var values = ($(this)[0].value).split(",");
        var catId = values[0];
        var otherId = values[1];
    });
    
        2
  •  4
  •   Rutesh Makhijani    16 年前

    其中一种方法是将选项的值设置为类似于

    <select id="category" name="data[cat]">
        <option value="{value1:10, value2:20}" label="0">A</option>
        <option value="{value1:30, value2:40}" label="0">B</option>
    </select>
    

    然后将该值解析为JSON对象。一旦获得了JSON对象,就可以从该对象中提取单个值。通过这种方式,您可以添加任意多的值。