Проверка формы - неупорядоченный список - PullRequest
0 голосов
/ 19 января 2012

Мне нужна помощь с валидатором формы.Он проверяет все как текст и так далее, но мне нужно, чтобы он проверял, есть ли в неупорядоченном списке хотя бы 1 элемент / элемент.

Моей первоначальной идеей было подсчитать childNodes в неупорядоченном списке, но используя.childNodes.length не работает.Я не уверен почему, возможно, потому что у меня есть jQuery, смешанный в моих функциях javascript?

Вот пример функции проверки для текстовой строки:

 function checkLength( o, n, min, max ) {
    if ( o.val().length > max || o.val().length < min ) {
         o.addClass( "ui-state-error" );
     updateTips( "Length of " + n + " must be between " +
         min + " and " + max + "." );
     return false;
  } else {
    return true;
       }
 }

Вот то, что мойфункция проверки неупорядоченной формы была (не работает):

function checkTags( t ) {
if (t.childNodes.length < 1) {
    t.addClass( "ui-state-error" );
    updateTips( "Add at least 1 genre/subgenre." );
    return false;
}
else {
        return true;
}
}

Неупорядоченный список заполняется пользователем после выбора значений из списка выбора и щелчка по ссылке на JavaScript, если это имеет значение.Заранее спасибо за любую помощь!

Ответы [ 2 ]

0 голосов
/ 19 января 2012

Если t является элементом, то t.childNodes включает все дочерние узлы, включая текстовые узлы, а также узлы элементов.Многие браузеры вставляют пустые текстовые узлы в DOM для представления пробелов в разметке, поэтому в некоторых браузерах следующий div:

<div>
  <p></p>
</div>

имеет 3 дочерних узла, в других только один.Вы можете проверить узлы дочерних элементов, используя:

if (element.getElementsByTagName('*').length) // element has child element nodes
0 голосов
/ 19 января 2012

при условии, что t является объектом jQuery, попробуйте

if (!t.children().length) {
    t.addClass('ui-state-error');
}

вот ссылка для справки: http://api.jquery.com/children/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...