У меня есть следующий html < /p>
< /code>
И я пытаюсь проверить, имеет ли поле People Picker вообще какое -либо значение, но я не заставляю его работать (не могу использовать атрибут идентификатора, чтобы найти элемент), я не уверен, какой элемент следует проверить. < /p>
Текущий код, который у меня есть, является: < /p>
.$("input[title=Target Date],input[title=Start Date],select[title=Strategic Objective],select[title=Strategic Priority]").change(function(){
checkControls()
});
< /code>
И здесь я хочу добавить что-то вроде
, выберите [title = стратегический приоритет], textarea.ms-input "), но это не работает, какие-либо идеи? < /p>
//bind a change event to all controls to validate
$("input[title=Target Date],input[title=Start Date],select[title=Strategic Objective],textarea[id$=_UserField_downlevelTextBox],select[title=Strategic
Priority]").change(function(){
checkControls()
});
//the change event function - check the status of each control
function checkControls(){
//set a variable to count the number of valid controls
var controlsPassed = 0;
//set up a selector to pick .each() of the target controls
$("input[title=Target Date],input[title=Start Date],select[title=Strategic Objective],textarea[id$=_UserField_downlevelTextBox],select[title=Strategic
Priority]").each(function(){
//if the control value is not zero AND is not zero-length
var val = $(this).val();
if($(this).is(':hidden') || (val != 0 && val.length != 0)) {
//add one to the counter
controlsPassed += 1;
}
});
//call the PreSaveItem function and pass the true/false statement of 5 valid controls
return (controlsPassed == 5);
}
function PreSaveItem() {
return checkControls()
}
< /code>
edit2: я думаю, это не работает, потому что другие элементы управления имеют атрибут значения. Если я вставлю что -то в дату, они получат, например, значение атрибута = "18/08/2010". Но с помощью текста HTML выглядит (упрощенное) значения здесь, так как я могу проверить, является ли это пустым или нет?return (controlsPassed == 5);
< /code>
to < /p>
return (controlsPassed == 4) && ( ($("textarea[title='People Picker'][value!='']").length==1) || $("textarea[title='People Picker'][value!='']").is(":hidden") );
< /code>
Но если сборщик людей скрыт (.hide ()), он все еще хочет проверить его, поэтому я подумал, что могу сделать что -то вроде: < /p>
if ($("textarea[title='People Picker'][value!='']").is(":hidden")) {
return (controlsPassed == 4)
}
else {
return (controlsPassed == 4) && ( ($("textarea[title='People Picker'][value!='']").length==1);
< /code>
Но нет, есть идеи?
} < /p>
Подробнее здесь: https://stackoverflow.com/questions/349 ... ith-jquery