2017-01-22 4 views
1

Я загружаю различные поля ввода (текстовые поля, радиокнопки, флажки) с помощью ajax в моем документе.Получение значения для динамического ввода разных типов

var SugesstionValue = $('#EditModalAddSuggestionValue').val(); 
if(SugesstionValue === null || typeof SugesstionValue === 'undefined') 
{SugesstionValue = $('#EditModalAddSuggestionRadioValue input:checked').val();} 
alert(SugesstionValue); 

Я получаю каждый раз, когда undefined Иногда это работает, а иногда нет ... Я не знаю, что делать ..

ответ

0

Трудно точно сказать, что происходит без дополнительной кода. Но, основываясь на вашем описании, похоже, что у вас есть условие гонки, потому что код, который вы предоставили, не запускается после вы загружаете свои поля через ajax. Вот почему SuggestionValue иногда undefined, а иногда нет.

Когда вы выбираете что-то из DOM, оно должно фактически находиться в DOM в то время, когда вы пытаетесь его выбрать. Это означает, что вы должны выбрать ajax-загруженные элементы после вы загружаете их. Вы можете сделать это в своем обратном вызове, если вы добавите поля в DOM, прежде чем делать что-либо еще.

+0

Спасибо! Я заметил, что значение поля было изменено более строгим функционалом, и именно по этой причине оно не сработало для меня. – NeXuS

+0

Просто небольшая коррекция, это не состояние гонки, а скорее неспособность дождаться или проверить существование ресурса, прежде чем действовать на него. Это то же самое, что не проверять наличие файла перед его открытием или не дожидаться готовности DOM, прежде чем пытаться его перемещать. –

Смежные вопросы