Проверьте, пусто ли поле выбора людей с помощью jQuery? ⇐ Jquery
-
Anonymous
Проверьте, пусто ли поле выбора людей с помощью jQuery?
У меня есть следующий HTML
и я пытаюсь проверить, имеет ли поле выбора людей какое-либо значение вообще, но у меня не получается (не могу использовать атрибут ID для поиска элемента), я не уверен, какой элемент проверять.
У меня текущий код:
$("input[title=Целевая дата],input[title=Дата начала],select[title=Стратегическая цель],select[title=Стратегический приоритет]").change(function(){ чекконтролс() }); и здесь я хочу добавить что-то вроде ,select[title=Strategic Priority],textarea.ms-input"), но это не работает, есть идеи?
Заранее спасибо.
Изменить: код проверки:
//привязываем событие изменения ко всем элементам управления для проверки $("input[title=Целевая дата],input[title=Дата начала],select[title=Стратегическая цель],текстовая область[id$=_UserField_downlevelTextBox],select[title=Strategic Приоритет]").change(function(){ чекконтролс() }); //функция события изменения — проверяем статус каждого элемента управления функция checkControls(){ //устанавливаем переменную для подсчета количества допустимых элементов управления вар controlPassed = 0; //настраиваем селектор для выбора .each() целевых элементов управления $("input[title=Целевая дата],input[title=Дата начала],select[title=Стратегическая цель],текстовая область[id$=_UserField_downlevelTextBox],select[title=Strategic Приоритет]").each(function(){ //если управляющее значение не равно нулю И не имеет нулевой длины вар val = $(this).val(); if($(this).is(':hidden') || (val != 0 && val.length != 0)) { //добавляем единицу в счетчик controlPassed += 1; } }); //вызываем функцию PreSaveItem и передаем оператор true/false для 5 допустимых элементов управления возврат (controlsPassed == 5); } функция PreSaveItem() { вернуть checkControls() } edit2: Я думаю, это не работает, потому что другие элементы управления имеют атрибут значения. Если я вставляю что-то в поля даты, они получают, например, значение атрибута = «18/08/2010». Но с текстовой областью HTML здесь выглядит как (упрощенное) значение, так как я могу проверить, пусто оно или нет?
редактировать3:
Я изменился
return (controlsPassed == 5); в
return (controlsPassed == 4) && ( ($("textarea[title='People Picker'][value!='']").length==1) || $("textarea[ title='People Picker'][value!='']").is(":hidden") ); Но если средство выбора людей скрыто (.hide()), оно все равно хочет его проверить, поэтому я подумал, что могу сделать что-то вроде:
if ($("textarea[title='People Picker'][value!='']").is(":hidden")) { возврат (controlsPassed == 4) } еще { return (controlsPassed == 4) && ( ($("textarea[title='People Picker'][value!='']").length==1); но нет, есть идеи?
У меня есть следующий HTML
и я пытаюсь проверить, имеет ли поле выбора людей какое-либо значение вообще, но у меня не получается (не могу использовать атрибут ID для поиска элемента), я не уверен, какой элемент проверять.
У меня текущий код:
$("input[title=Целевая дата],input[title=Дата начала],select[title=Стратегическая цель],select[title=Стратегический приоритет]").change(function(){ чекконтролс() }); и здесь я хочу добавить что-то вроде ,select[title=Strategic Priority],textarea.ms-input"), но это не работает, есть идеи?
Заранее спасибо.
Изменить: код проверки:
//привязываем событие изменения ко всем элементам управления для проверки $("input[title=Целевая дата],input[title=Дата начала],select[title=Стратегическая цель],текстовая область[id$=_UserField_downlevelTextBox],select[title=Strategic Приоритет]").change(function(){ чекконтролс() }); //функция события изменения — проверяем статус каждого элемента управления функция checkControls(){ //устанавливаем переменную для подсчета количества допустимых элементов управления вар controlPassed = 0; //настраиваем селектор для выбора .each() целевых элементов управления $("input[title=Целевая дата],input[title=Дата начала],select[title=Стратегическая цель],текстовая область[id$=_UserField_downlevelTextBox],select[title=Strategic Приоритет]").each(function(){ //если управляющее значение не равно нулю И не имеет нулевой длины вар val = $(this).val(); if($(this).is(':hidden') || (val != 0 && val.length != 0)) { //добавляем единицу в счетчик controlPassed += 1; } }); //вызываем функцию PreSaveItem и передаем оператор true/false для 5 допустимых элементов управления возврат (controlsPassed == 5); } функция PreSaveItem() { вернуть checkControls() } edit2: Я думаю, это не работает, потому что другие элементы управления имеют атрибут значения. Если я вставляю что-то в поля даты, они получают, например, значение атрибута = «18/08/2010». Но с текстовой областью HTML здесь выглядит как (упрощенное) значение, так как я могу проверить, пусто оно или нет?
редактировать3:
Я изменился
return (controlsPassed == 5); в
return (controlsPassed == 4) && ( ($("textarea[title='People Picker'][value!='']").length==1) || $("textarea[ title='People Picker'][value!='']").is(":hidden") ); Но если средство выбора людей скрыто (.hide()), оно все равно хочет его проверить, поэтому я подумал, что могу сделать что-то вроде:
if ($("textarea[title='People Picker'][value!='']").is(":hidden")) { возврат (controlsPassed == 4) } еще { return (controlsPassed == 4) && ( ($("textarea[title='People Picker'][value!='']").length==1); но нет, есть идеи?
Мобильная версия