0
Отвечен
data.management is undefined
Здравствуйте!
При тестировании полей подсказок организаций встретился с такой ошибкой: с ООО всё нормально, а с ИП выдает ошибку TypeError: data.management is undefined.
Я понимаю, что он ругается на то отсутствие указанного объекта, но я не понимаю, почему моя проверка на его существование также не срабатывает.
Код:
При тестировании полей подсказок организаций встретился с такой ошибкой: с ООО всё нормально, а с ИП выдает ошибку TypeError: data.management is undefined.
Я понимаю, что он ругается на то отсутствие указанного объекта, но я не понимаю, почему моя проверка на его существование также не срабатывает.
Код:
<label for="party">Найти организацию: </label><input id="party" name="party" type="text" size="100"/> <label for="address">Адрес </label><input id="address" name="address"> <label for="name_short">Короткое имя </label><input id="name_short" name="name_short"> <label for="name_full">Полное имя </label><input id="name_full" name="name_full"> <label for="inn">ИНН </label><input id="inn" name="inn"> <label for="kpp">КПП </label><input id="kpp" name="kpp"> <label for="management_name">ФИО руководителя </label><input id="management_name" name="management_name"> <label for="management_post">Должность руководителя </label><input id="management_post" name="management_post"> <label for="name_full_with_opf">Полное наименование с ОПФ </label><input id="name_full_with_opf" name="name_full_with_opf"> <label for="name_short_with_opf">Краткое наименование с ОПФ </label><input id="name_short_with_opf" name="name_short_with_opf"> <label for="ogrn">ОГРН </label><input id="ogrn" name="ogrn"> <label for="okpo">Код ОКПО </label><input id="okpo" name="okpo"> <label for="okved">Код ОКВЭД </label><input id="okved" name="okved"> <label for="opf_code">Код ОКОПФ </label><input id="opf_code" name="opf_code"> <label for="opf_full">Полное название ОПФ </label><input id="opf_full" name="opf_full"> <label for="opf_short">Краткое название ОПФ </label><input id="opf_short" name="opf_short"> <label for="type">Тип организации </label><input id="type" name="type"> <!--[if lt IE 10]> <![endif]--> <script type="text/javascript"> jQuery.noConflict(); function join(arr /*, separator */ ) { var separator = arguments.length > 1 ? arguments[1] : ", "; return arr.filter(function(n) { return n }).join(separator); } function showSuggestion(suggestion) { console.log(suggestion); var data = suggestion.data; if (!data) return; function alertObj(obj) { var str = ""; for (k in obj) { str += k + ": " + obj[k] + "\r\n"; } alert(str); } if (typeof data.name !== "undefined") jQuery("#name_short").val(join([data.opf && data.opf.short || "", data.name.short || data.name.full], " ")); if (typeof data.inn !== "undefined") jQuery("#inn").val(data.inn); if (typeof data.kpp !== "undefined") jQuery("#kpp").val(data.kpp); if (typeof data.address !== "undefined") jQuery("#address").val(data.address.value); if (typeof data.management.name !== "undefined") jQuery("#management_name").val(data.management.name); if (typeof data.management.post !== "undefined") jQuery("#management_post").val(data.management.post); if (typeof data.name.full_with_opf !== "undefined") jQuery("#name_full_with_opf").val(data.name.full_with_opf); if (typeof data.name.short_with_opf !== "undefined") jQuery("#name_short_with_opf").val(data.name.short_with_opf); if (typeof data.ogrn !== "undefined") jQuery("#ogrn").val(data.ogrn); if (typeof data.okpo !== "undefined") jQuery("#okpo").val(data.okpo); if (typeof data.okved !== "undefined") jQuery("#okved").val(data.okved); if (typeof data.opf.code !== "undefined") jQuery("#opf_code").val(data.opf.code); if (typeof data.opf.full !== "undefined") jQuery("#opf_full").val(data.opf.full); if (typeof data.opf.short !== "undefined") jQuery("#opf_short").val(data.opf.short); if (typeof data.type !== "undefined") jQuery("#type").val(data.type); } jQuery("#party").suggestions({ serviceUrl: "https://dadata.ru/api/v2", token: "9baeeea1af04c72ef2fcebe31ee3c8ea5f6d2e72", type: "PARTY", count: 5, /* Вызывается, когда пользователь выбирает одну из подсказок */ onSelect: showSuggestion }); </script>
Ответ
0
Ответ
Отвечен
Антон Жиянов 9 лет назад
Добрый день. Проблема в том, что вы проверяете поле data.management.name, а не существует «вышестоящее» data.management. Поэтому проверку лучше делать так:
Ответ
Отвечен
Добрый день. Проблема в том, что вы проверяете поле data.management.name, а не существует «вышестоящее» data.management. Поэтому проверку лучше делать так:
if (data.management && data.management.name) { $("#management_name").val(data.management.name); } if (data.management && data.management.post) { $("#management_post").val(data.management.post); }
Сервис поддержки клиентов работает на платформе UserEcho