Для меня ответы здесь не сработали или были слишком сложными.
В моем случае я хотел дождаться, чтобы конкретный раскрывающийся список существовал и имел выбранное значение. (Но вы можете использовать другие критерии ....)
Мой выпадающий список использовал dataURL для загрузки элементов, поэтому потребовалось некоторое время, прежде чем он стал доступен на экране.
В случае, если кто-то приземлится здесь из поиска Google о том, как ждать загрузки элементов управления в в первый раз, когда форма редактирования / добавления показывает ....
Мое решение представляет собой сочетание рекурсии и setTimeout в JavaScript:
function WaitForDropDownToBeLoadedAndProcess() {
var dropDownVal= $("#MyDropDown").val();
if (!dropDownVal) {//if the value is undefined called this method recursively
setTimeout(function() {//use setTimeout to avoid blocking
WaitForDropDownToBeLoadedAndProcess();
}, 150);
} else {//if the dropdown has a value
//do your logic here... like disabling the control or set value
}
}
Я подключил его к сетке так:
afterShowForm:function(formid) {
WaitForDropDownToBeLoadedAndProcess();
}