select元素应该返回2个值

时间:2009-01-30 10:17:10

标签: php jquery html html-select

我有一个包含选项的选择框。选项的值获取每个选项中显示的项目的ID 我确实有一个应该在此选项上链接的其他值。是否有捷径可寻?

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

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

要使用我选择的选项:

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

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

2 个答案:

答案 0 :(得分:4)

某些浏览器使用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];
});

答案 1 :(得分:4)

其中一种方法是将option的值设置为JSON字符串,如

<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对象后,您可以从中提取单个值。通过这种方式,您可以添加任意数量的值。