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>
Ответ
Ответ
Отвечен
Добрый день. Проблема в том, что вы проверяете поле 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
if (data.management && data.management.name) { $("#management_name").val(data.management.name); } if (data.management && data.management.post) { $("#management_post").val(data.management.post); }