【发布时间】:2010-07-08 16:37:45
【问题描述】:
我有一个表单,它有输入元素和带有多选的选择元素。那么如何在 mootools 中为输入元素和选择元素设置值。
【问题讨论】:
标签: forms select input mootools element
我有一个表单,它有输入元素和带有多选的选择元素。那么如何在 mootools 中为输入元素和选择元素设置值。
【问题讨论】:
标签: forms select input mootools element
基本上 - element.get("value"); 返回所有输入、选择和文本区域的值,.set("value", value); 设置它们(倍数除外)
使用多个选择更复杂 - 上面只返回第一个选择,您需要执行element.getSelected().get("value") 来接收一个值数组(.getSelected() 将返回指向实际option 的指针元素)
最后,要设置多个选择,我能想到 atm 的唯一方法是编写你自己的元素原型,它遍历具有指定值的子节点并执行.set("selected", "selected")
如果您在编写后者时需要任何帮助,请告诉我
【讨论】:
对于下拉菜单:
$('idOfSelect').selectedIndex = x;
对于文本:
$('IdOfInput').value = 'Foo';
【讨论】:
关于倍数的答案是正确的,需要使用selectEl.getChildren('option').each(function(option)...
但即使对于单选,在 IE 中(我正在 IE9 中对此进行测试)如果每个选项中都没有“值”属性,那么 Mootools 会失败,即
selectEl.set('value', value) 不起作用。如果您设置每个元素的“值”属性,则在 FF 中它可以工作,而在 IE 中它可以工作。
我的解决办法是:
selectEl.getElements('option').each(function(option) {
option.selected = option.get('value')==value
});
注意 option.get('value') 即使在没有 value 属性的 IE 中也有效,Mootools 提供选项的 text
【讨论】: