2011-08-22 152 views
0

我使用了一下MooTools的来访问一个HTML选择元素的值,但事情是这样用MooTools的做[.getSelected()返回一个数组,我不不知道如何处理它。访问元素

我的代码:因为一些选择元素允许选择多个

<script type="text/javascript"> 
    window.addEvent('domready', function(){ 
    $('votconj').addEvent('click', function() { 
     // This works great 
     $('jj_conjoint').addClass("validate['required']"); 
     $('mm_conjoint').addClass("validate['required']"); 
     $('aaaa_conjoint').addClass("validate['required']"); 
     $('conjoint_regime').addClass("validate['required']"); 
     new FormCheck('form'); 
    }); 
    if ($('nb_children').getSelected() == 1){ 
    // this doesn't work because .getSelected() returns an array and never equals 1 
    $('jj_enfant1').addClass("validate['required']"); 
    $('mm_enfant1').addClass("validate['required']"); 
    $('aaaa_enfant1').addClass("validate['required']"); 
    new FormCheck('form'); 
    } 
    if ($('nb_children').getSelected() == 2){ 
    // this doesn't work because .getSelected() returns an array and never equals 2 
    $('jj_enfant2').addClass("validate['required']"); 
    $('mm_enfant2').addClass("validate['required']"); 
    $('aaaa_enfant2').addClass("validate['required']"); 
    new FormCheck('form'); 
    } 

    new FormCheck('form'); 
}); 

</script> 

回答

0

您可以使用.each遍历MooTools的数组:

var selected = $('nb_children').getSelected(); 

selected.each(function(element) { 
    var val = element.get('value'); 

    $('jj_enfant' + val).addClass("validate['required']"); 
    //etc 
} 

new FormCheck('form'); 

欲了解更多信息:http://mootools.net/docs/core/Types/Array#Array:each

为什么getSelected()返回数组在所有的原因次,是否像这样的代码总是可以重用,当你决定添加多个可选项目,而不是一个。

编辑

注意的是,上述代码被直接写入。可能需要进行一些调整才能使其适合您的情况。

编辑2

更新代码,以更全面的例子。

1

getSelected()返回一个数组。如果你没有,你可以只尝试$('nb_children').getSelected()[0]。要获得价值,您可以使用$('nb_children').getSelected()[0].get("value")

+0

谢谢您的回答,但它不工作。我更新了我的帖子,将我的代码更全面的部分。 – Bruno

+0

@布鲁诺看到我更新的答案。 – jtbandes

0

您要检查所选项目的价值,对不对?

尝试:

if ($('nb_children').getSelected().get('value') == 1){//... 
+0

感谢您的回答,但它不起作用。我更新了我的帖子,将我的代码更全面的部分。 – Bruno