我有一个带有input元素的表单和带有multi select的select元素。那么如何设置输入元素的值并在mootools中选择元素。
答案 0 :(得分:8)
基本上 - element.get("value");
返回所有输入的值,选择和textareas,.set("value", value);
来设置它们(除了倍数)
选择多个更复杂 - 上面只返回FIRST选择,你需要做element.getSelected().get("value")
来接收一个值数组(.getSelected()自己会返回指向实际的{ {1}}元素)
最后,要设置多个选择,只有我能想到atm的方法是编写自己的元素原型,使用指定的值遍历子节点并执行option
如果您需要任何帮助来撰写后者,请告诉我
答案 1 :(得分:3)
下拉:
$('idOfSelect').selectedIndex = x;
对于文字:
$('IdOfInput').value = 'Foo';
答案 2 :(得分:2)
关于倍数的答案是正确的,需要使用selectEl.getChildren('option').each(function(option)...
但是即使对于单个选择,在IE中(我在IE9中测试它)如果每个选项中没有“value”属性,则Mootools失败,即
selectEl.set('value', value)
不起作用。在FF中它可以工作,并且在IE中它可以工作,如果你设置每个元素的“值”属性。
我的解决方案是:
selectEl.getElements('option').each(function(option) {
option.selected = option.get('value')==value
});
请注意,即使在没有value
属性的IE中,option.get('value')也能正常工作,Mootools提供了选项text