2011-08-22 203 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