是否可以使用new option()将ondblclick添加到选项字段?

时间:2012-04-12 11:22:53

标签: javascript select option

我的代码

var row2 =<?php echo json_encode($_SESSION['row2']) ?>;
for (var i = 0; i < row2.length; i++) {
   if(row2[i][0] == x) {
      var select = document.getElementById("mTask");
      select.options[select.options.length] = new Option(row2[i][2], row2[i][1]);
   }
}

并在html中生成此内容

<select id="mTask" size="12">
  <option value="0">Rätt eller fel!</option>
  <option value="1">A Valles Verktygsaffär</option>
  <option value="2">A Stina för dagbok</option>
  <option value="3">A Dagbok för cykelverkstad</option>
  <option value="4">A Dagbok för elfirma</option>
  <option value="5">A Dagbok för innebandyklubb</option>
</select>

我希望看起来像这样,有可能吗?

<option ondblclick="mainLink(270)">Rätt eller fel!</option>

1 个答案:

答案 0 :(得分:4)

我现在看到了。谢谢你的澄清。您可以将this传递给将引用所选选项的函数。我只为第二种选择添加了它。

这是一个更好的解决方案。将单个函数绑定到选择列表,然后使用data-attribute存储270数字。

http://jsfiddle.net/sUqVV/1/

<select id="mTask" size="12" ondblclick="mainLink2(this);">
    <option data-id="270" value="0">Rätt eller fel!</option>
    <option data-id="271" value="1">A Valles Verktygsaffär</option>
    <option data-id="272" value="2">A Stina för dagbok</option>
    <option data-id="273" value="3">A Dagbok för cykelverkstad</option>
    <option data-id="274" value="4">A Dagbok för elfirma</option>
    <option data-id="275" value="5">A Dagbok för innebandyklubb</option>
</select>
<script>
    function mainLink2(select) {
        var selectedValue = select.options[select.selectedIndex].value;
        var dataAttrib = select.options[select.selectedIndex].getAttribute('data-id');
        alert( selectedValue + ':' + dataAttrib);
    }
</script>
​

OLD http://jsfiddle.net/sUqVV/

<select id="mTask" size="12" ondblclick="mainLink2(this);">
    <option value="0">Rätt eller fel!</option>
    <option ondblclick="mainLink(270, this);" value="1">A Valles Verktygsaffär</option>
    <option value="2">A Stina för dagbok</option>
    <option value="3">A Dagbok för cykelverkstad</option>
    <option value="4">A Dagbok för elfirma</option>
    <option value="5">A Dagbok för innebandyklubb</option>
</select>
<script>
    function mainLink(id, option) {
        alert(id + ':' + option.value);
    }
</script>