【问题标题】:How to add/remove selected attribute to option onchange MooTools?如何向选项 onchange MooTools 添加/删除选定属性?
【发布时间】:2012-05-18 03:24:55
【问题描述】:

这是我的小提琴:http://jsfiddle.net/tE6Wv/7/

我需要从先前选择的选项属性selected="selected" 中添加或删除以 moo 更改的选项,但从未添加过 html。

我正在使用 moo 缓慢创建菜单,但未采用所选值

var firstoption = new Element('option', { 
    'selected':'selected', 
    'value':"myValue" 
}

var firstoption = new Element('option', {
    'selected': true,
    'value': "myValue"
} 

这些都不起作用

感谢任何帮助。谢谢!

【问题讨论】:

  • 我不确定我是否理解您要执行的操作 - 当更改发生时,所选内容会自行更改 - 您不需要自己更改。 FWIW,小提琴目前正在尝试在 selectedIndex 上设置一个属性,这是一个整数,而不是 DOM 元素。
  • 问题也在于<select id="menu" onchange="location.href=this.value"> - this.value 没有映射到任何有用的东西。 this.get('value') 将通过 mootools 访问器返回选定的值。所以location.href = this.get('value') - 你真的应该避免使用内联js,只需像在小提琴中那样添加更改事件,而不是在标记中
  • 选择更改,但我选择的选项重置为转到而不是选择的选项。

标签: javascript mootools option html-select


【解决方案1】:

FWIW,您可以更改您的小提琴以确认已为您更改所选内容。我已经为 2 个选项分配了 ID,只是为了让它更容易分辨:

html 更改为在 2 个链接选项中包含 id 属性:

<select id="menu" onchange="location.href=this.value">
    <option value="">Go to..</option>
    <option id="link1" value="#">Link</option>
    <option id="link2" value="#">Link</option>
</select>​​​​​​​​​​​

js 已经显示选定的更改:

$('menu').addEvent('change',function() {
    alert(document.getElementById('link1').selected);
    alert(document.getElementById('link2').selected);
});​

【讨论】:

  • 将 change 事件与 select 元素一起使用并不是一个好主意。在 IE 中,当使用光标键导航时,每次按下该键时都会发送一个更改事件,这样用户在被发送到新页面之前不会超出当前选择的下一个选项。
  • 我不能通过 id 来定位它们,因为我永远不知道下一个是哪一个。它们是自动生成的。我需要选择一个以保持选中状态,而不是重置回第一个选项
  • @Benn - 你不需要添加 id's - 我这样做只是为了告诉你 selected 已经改变了。你不需要自己改变它。
猜你喜欢
  • 2011-06-24
  • 1970-01-01
  • 1970-01-01
  • 2020-07-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多