2012-01-19 2 views
0

Мне нужна помощь с помощью валидатора формы. Он проверяет все как текст и такой тонкий, но мне нужно его, чтобы проверить, имеет ли неупорядоченный список по крайней мере 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, если это имеет значение. Заранее благодарю за любую помощь!

ответ

0

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

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

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

0

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

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

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

if (element.getElementsByTagName('*').length) // element has child element nodes 
Смежные вопросы