Элемент доступа к массиву Mootools - PullRequest
0 голосов
/ 22 августа 2011

Я использую немного Mootools для доступа к значениям HTML-элемента select, но дело в том, что способ сделать это с 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>

Ответы [ 3 ]

1 голос
/ 22 августа 2011

getSelected() возвращает массив, поскольку некоторые элементы выбора допускают множественный выбор.Если у вас нет, вы можете просто попробовать $('nb_children').getSelected()[0].Для получения значения вы можете использовать $('nb_children').getSelected()[0].get("value").

0 голосов
/ 22 августа 2011

Вы можете использовать .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

Обновлен код до более полного примера.

0 голосов
/ 22 августа 2011

Вы хотите проверить значение выбранного элемента, верно?

Попробуйте:

if ($('nb_children').getSelected().get('value') == 1){//...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...