0
Answered

Банк не раскладывает по полям

Юрий Чижик 4 years ago updated by Антон 4 years ago 4
Привет. Не могу понять в чем проблема.
подсказки работают, но хотел разбить по полям ничего не получилось:

$("#bank").suggestions({
serviceUrl: "https://dadata.ru/api/v2",
token: "4cf23f1f821255757b1c087e41e0b64053721cce",
type: "BANK",
count: 6,
onSelect: showSelected
});

function showSelected(suggestion) {
var data = suggestion.data;
$("#bik").val(data.bic);
$("#ks").val(data.correspondent_account);
$("#bank-name").val(data.opf.full);
}

Answer

Answer
Under review
Пожалуйста, посмотрите пример подсказок по банкам.
Answer
Under review
Пожалуйста, посмотрите пример подсказок по банкам.
При попытке вывести на одной странице подсказки по организации и банку, данные банка (короткое и полное наименование записываются в данные организации), все остальные данные не выводятся (бик, к/с)
Вывод следующий:
// банк
$("#bank").suggestions({
    serviceUrl: "https://dadata.ru/api/v2",
    token: "4cf23f1f821255757b1c087e41e0b64053721cce",
    type: "BANK",
    count: 5,
    onSelect: showSuggestion
});

function showSuggestion(suggestion) {
        console.log(suggestion);
        var data = suggestion.data;
        if (!data)
            return;
        $("#name_bank_payment").val(data.name && data.name.payment || "");
        $("#name_bank_full").val(data.name && data.name.full || "");
        $("#bic").val(data.bic);
        $("#ks").val(data.correspondent_account);
    }
    // организация
$("#party").suggestions({
    serviceUrl: "https://dadata.ru/api/v2",
    token: "4cf23f1f821255757b1c087e41e0b64053721cce",
    type: "PARTY",
    count: 10,
    onSelect: showSuggestion
});

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;
    if (data.name)
        $("#name_short").val(join([data.opf && data.opf.short || "", data.name.short || data.name.full], " "));
    if (data.name && data.name.full)
        $("#name_full").val(join([data.opf && data.opf.full || "", data.name.full], " "));
    if (data.management)
        $("#ruk").val(data.management.name);
    if (data.management)
        $("#dolzhn").val(data.management.post);
    $("#inn").val(data.inn);
    $("#kpp").val(data.kpp);
    $("#ogrn").val(data.ogrn);
    if (data.address)
        $("#address_ur").val(data.address.value);
}

Это потому, что у вас две функции с одинаковым названием showSuggestion. Назовите их по-разному:

function join(arr /*, separator */ ) {
    var separator = arguments.length > 1 ? arguments[1] : ", ";
    return arr.filter(function(n) {
        return n
    }).join(separator);
}

// банк
$("#bank").suggestions({
    serviceUrl: "https://dadata.ru/api/v2",
    token: "4cf23f1f821255757b1c087e41e0b64053721cce",
    type: "BANK",
    count: 5,
    onSelect: showBank
});

function showBank(suggestion) {
    console.log(suggestion);
    var data = suggestion.data;
    if (!data)
        return;
    $("#name_bank_payment").val(data.name && data.name.payment || "");
    $("#name_bank_full").val(data.name && data.name.full || "");
    $("#bic").val(data.bic);
    $("#ks").val(data.correspondent_account);
}

// организация
$("#party").suggestions({
    serviceUrl: "https://dadata.ru/api/v2",
    token: "4cf23f1f821255757b1c087e41e0b64053721cce",
    type: "PARTY",
    count: 10,
    onSelect: showParty
});

function showParty(suggestion) {
    console.log(suggestion);
    var data = suggestion.data;
    if (!data)
        return;
    if (data.name)
        $("#name_short").val(join([data.opf && data.opf.short || "", data.name.short || data.name.full], " "));
    if (data.name && data.name.full)
        $("#name_full").val(join([data.opf && data.opf.full || "", data.name.full], " "));
    if (data.management)
        $("#ruk").val(data.management.name);
    if (data.management)
        $("#dolzhn").val(data.management.post);
    $("#inn").val(data.inn);
    $("#kpp").val(data.kpp);
    $("#ogrn").val(data.ogrn);
    if (data.address)
        $("#address_ur").val(data.address.value);
}