phi*_*reo 9 javascript forms mootools
问题1:给定
<input type="radio" name="foo" value="1" />
<input type="radio" name="foo" value="2" />
<input type="radio" name="foo" value="3" />
Run Code Online (Sandbox Code Playgroud)
在Mootools中,假设单击了第二个单选按钮,如何在输入"foo"时返回"2".
问题2 :(它是相关的) - 给定类似的复选框输入,如何返回已检查值的数组或逗号分隔列表?
我想通过Request.JSON提交这些输入的值,并将其作为GET参数传递.
Anu*_*rag 18
假设复选框的名称为"foo",要获取所选的单选项,您可以使用:
var values = $$('input[name=foo]:checked'??????????????).map(function(e) { return e.value; });
Run Code Online (Sandbox Code Playgroud)
这将返回一个包含1个项目的数组,即所选元素的值.
或者只是扩展一个Array的原型,并添加一个getFirst()方法.
Array.implement({
getFirst: function() {
if(this.length == 0) {
return null;
}
return this[0];
}
});
Run Code Online (Sandbox Code Playgroud)
然后你可以这样做:
var value = $$('input[name=foo]:checked').getFirst().value;
Run Code Online (Sandbox Code Playgroud)
同样,要获取所有选中的复选框,请使用:
var values = $$('input[name=foo]:checked'??????????????).map(function(e) { return e.value; });
Run Code Online (Sandbox Code Playgroud)
double dollar($$)函数用于使用CSS选择器选择多个元素.然后可以将一个map(Array类的一部分)应用于这些元素以获得所需的值.
您可以在http://mootools.net/docs/core/Utilities/Selectors上阅读有关这些伪选择器的更多信息.
小智 6
没必要
var value = $$('input[name=foo]:checked').getFirst().value;
Run Code Online (Sandbox Code Playgroud)
只需使用:
var value = $$('input[name=foo]:checked')[0].get('value');
Run Code Online (Sandbox Code Playgroud)