1. ホーム
  2. javascript

[解決済み] 関数が定義されていない - Uncaught ReferenceError

2022-03-02 10:54:49

質問

Uncaught ReferenceError: function is not defined"というよくわからないエラーが出ています。

もし

$(document).ready(function() {
  function codeAddress() {
    var address = document.getElementById("formatedAddress").value;
    geocoder.geocode({
      'address': address
    }, function(results, status) {
      if (status == google.maps.GeocoderStatus.OK) {
        map.setCenter(results[0].geometry.location);
      }
    });
  }
});

そして

<input type="image" src="btn.png" alt="" onclick="codeAddress()" />
<input type="text" name="formatedAddress" id="formatedAddress" value="" />

ボタンを押すと、"Uncaught ReferenceError"が返されます。

しかし、もし私が codeAddress() 外側 その $(document).ready(function(){}) であれば、動作は よろしい .

私の意図としては codeAddress() の中に document.ready 関数を使用します。

どのように解決するのですか?

を削除してみてはいかがでしょうか。 onclick 属性を追加し、IDを追加します。

<input type="image" src="btn.png" alt="" id="img-clck" />

そして、あなたのスクリプト。

$(document).ready(function(){
    function codeAddress() {
        var address = document.getElementById("formatedAddress").value;
        geocoder.geocode( { 'address': address}, function(results, status) {
            if (status == google.maps.GeocoderStatus.OK) {
                map.setCenter(results[0].geometry.location);
            }
        });
    }
    $("#img-clck").click(codeAddress);
});

こうすることで、関数名を変更したりする必要があっても、htmlを触る必要がなくなります。