編集時のIPアドレスの取得について

お世話になっております。

 

複数人が共通して使用するアカウントにて、編集時にIPアドレスを取得することで誰が編集したかわかるようにしたいです。

最終的には、特定のIPアドレス以外では編集できないよう設定したいため、判定にはIPアドレスを使用したいです。

下記コードを書いてみたのですが、

event,record.IPアドレス.value = ipadd

のところでUncaught ReferenceError: ipadd is not definedとなり値をフィールドに入れることができません。

alertやconsole.logではIPアドレスを取得できています。

何か解決方法はございますでしょうか。ご教示お願い致します。

(function($) {
"use strict";
kintone.events.on('app.record.edit.show', function(event) {

$.get("https://ipinfo.io", function(response) {
var ipadd = response.ip
console.log(ipadd)
}, "jsonp");

event.record.IPアドレス.value = ipadd;

return event;
});
})(jQuery);

 

こんにちは。

エラーが出ている箇所をブラウザーのデベロッパーツールで確認してみてください。

eventオブジェクトの値を書き換えようとしている処理のところでエラーが出ているはずです。

この時点($getの関数の外)で、どうして変数ipaddが定義されていないというエラーが出るのか?

この変数を宣言している場所の見直しが必要そうですね。

「JavaScript 変数 スコープ」等で検索してみてください。

お世話になります。

 

ご教示ありがとうございます。

変数のスコープについては知りませんでした。

$get内で宣言していたため、$getの外では参照ができなかった(=定義されていない変数)ということですね。

$get内ですべて処理をすることで解決致しました。

ありがとうございました。

こんにちは。

それか、変数の定義の処理を$getの外(上)でするだけでもいいかもしれませんね。

うまく修正できたようで、よかったです。