1

我有一个带有选项的选择框。选项的值获取每个选项中显示的项目的 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); 
});

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

4

2 回答 2

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];
});
于 2009-01-30T10:26:44.170 回答
4

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

于 2009-01-30T10:30:35.473 回答