问问题
1531 次
2 回答
3
您不能在一个选项中添加许多值。相反,您可以使用数据集(html5),例如:
<select id="myselect">
<option data-this="foo" data-that="bar">
</select>
读取这些值的 javascript 是:
var d = document.getElementById("myselect");
var _this = d.options[d.selectedIndex].dataset["this"];
var _that = d.options[d.selectedIndex].dataset["that"];
如果你不想弄乱数据集,你可以存储一个 JSON 对象:
...
<option value='<?php echo json_encode(array("foo"=>1,"bar"=>2)); ?>'>
...
并提取数据,如:
var d = document.getElementById("myselect");
var option_value = JSON.parse( d.options[d.selectedIndex].value );
你选
编辑:
改变这个:
<select onChange="display(<?=$manufacturers_id?>,<?=$modelID?>,this);">
function display(manufacturers_id,modelid,obj) {
... json way
var option_value = JSON.parse(obj.options[obj.selectedIndex].value);
// option_value.foo = 1;
... dataset way
var _this = obj.options[obj.selectedIndex].dataset["this"];
// _this will have the "foo" value
}
于 2012-06-06T18:00:45.440 回答
1
我会呈现这样的选项:
<option data-value1="X" data-value2="Y">
然后随心所欲地处理这些数据属性(使用 jQuery 的data("value1")
方法,使用 nativegetAttribute("data-value1")
等。
于 2012-06-06T17:51:29.180 回答