あなたは11362のようなzipdeを入力し、City Nameの下に「Little Neck」と表示されるはずです。コードネームのウィンドウには、「リトルネック」のような瞬間が現れて消えます。どうして?返されたAPI情報がCodePenで1秒間表示され、消えました。どうして?
私は自分のコードでミッドステークを作っていないと思います。しかし、私は何とかAPIのURLを間違って入力します。知りません。情報はそこにあります。要求は、部分的には成功しています。
コード:
var button=document.getElementById('submit');
var zipcode;
/*takes what the user enters*/
button.addEventListener('click',getValue);
function getValue(){
zipcode=document.getElementById('zipcode').value;
getCity();
}
//API request to Google Geocode
function getCity(){
var req=new XMLHttpRequest;
req.onreadystatechange=function(){
if(this.readyState==4&&this.status==200){
var myData=JSON.parse(this.responseText);
var myCity=myData.results[0].address_components[1].short_name;
document.getElementById('city').innerHTML=myCity;
}//if function end
}//onreadystate function end
req.open('GET','https://maps.googleapis.com/maps/api/geocode/json?address='+zipcode, true);
req.send();
}
<form>
<input type=text placeholder='zipcode' id='zipcode'></input>
<input type='submit' id='submit'></input>
</form>
<ol>
<li>City Name: <span id='city'></span></li><br>
<li>Temperature(C/F): <span id='temp'></span></li>
<li>Icon: <span id='icon'></span></li>
<li>Weather: <span id='weather'></span></li><br>
<li>Wind: <span id='wind'></span></li>
<li>Sunrise: <span id='sunrise'></span></li>
<li>Weather: <span id='sunset'></span></li>
</ol>
編集:ここでは、あなたが提出クリックして、それが空白になります。
なぜパラメータeを使用するのですか?イベントハンドラでgetValue関数が呼び出されると、パラメータはありません。 – user132522
'e'はトリガされた' event'です(イベントは常に 'getValue 'のリスナー関数にパラメータとして渡されます。このイベントは発生したイベントに関する情報を与えます)。この場合、あなたのフォームにアクションがないので、デフォルトで私の答えで述べたようにsubmitイベントはページをリロードし、あなたはデフォルトの動作を防ぐ必要があります。 – JoseAPL
次に、 "button.addEventListener( 'click'、getValue(event));"のように記述されたeventlistenerはありません。 – user132522