Hi guys, I am having a problem implementing a js application on my website. The weirdest part is that if I create a landing page with code it works, but when I do the same in blocs my button does not respond. I mean, it pulls the code but with errors so it doesn’t work.
Here is a snippet of the code I am using to see if anyone can find a solution. Thanks a lot in advance.
<div class="row voffset-lg voffset-lg-md voffset-lg-sm voffset-md-xs">
<div class="align-self-center calculator-box col-lg-6 offset-lg-3 col-md-6 offset-md-3 col-10 offset-1 col-sm-8 offset-sm-2">
<div class="numero-streams">
<div class="row voffset-md">
<div class="col">
<p class="stream-class mg-md">
Estimated number of streams
</p>
</div>
</div>
<div class="row">
<div class="col-lg-4 offset-lg-4">
<div class="form-group">
<input class="form-control calculator-input" type="number" min="1" step="1" name="num" id="num" required />
<div class="text-center">
<input class="btn btn-d btn-block btn-calculator btn-rd" type="button" value="Calculator" onclick="calc()" id="btncalcular">
</div>
</div>
</div>
</div>
</div>
</div>
</div>
Here the javascript code:
let numeroStreams = document.getElementById('num')
let resultado = document.getElementById('res')
// let requestURL = 'https://economia.awesomeapi.com.br/json/all/USD-BRL';
// let request = new XMLHttpRequest();
// request.open('GET', requestURL);
// request.send();
// request.onload = function() {
// let cotacaoDolar = JSON.parse(request.response);
// let divisaoReais = parseFloat(cotacaoDolar['USD']['ask']);
// }
// codigo acima funciona, entender Promise e then para criar let real
let dolar = {
Spotify: 0.00296,
Deezer: 0.00478,
Amazon: 0.00362,
Apple: 0.00574,
Ytmusic: 0.00625,
Tidal: 0.00745,
Yt: 0.00059,
};
function calc() {
if (numeroStreams.value > 0) {
res.innerHTML = `<div class="row " id="stores-container">
<div class="col">
<div class="row voffset-md">
<div class="col-lg-4">
<div class="row platforms-spotify">
<div class="align-self-center col-lg-5">
<img src="img/spotify_logo.png" class="img-fluid img-protected logo-cal-style float-lg-none" alt="spotify_logo">
</div>
<div class="align-self-center col-lg-7">
<h2 class="cal-store-style mg-clear">
Spotify
</h2>
<p class="currency mg-clear">R$ ${(numeroStreams.value*real.Spotify).toFixed(2)}</p>
</div>
</div>
</div>
<div class="col-lg-4">
<div class="row platforms-deezer">
<div class="align-self-center col-lg-5">
<img src="img/deezer-logo.png" class="img-fluid img-protected logo-cal-style float-lg-none" alt="deezer_logo">
</div>
<div class="align-self-center col-lg-7">
<h2 class="cal-store-style mg-clear">
Deezer
</h2>
<p class="currency mg-clear">US$ ${(numeroStreams.value*dolar.Deezer).toFixed(2)}</p>
</div>
</div>
</div>
<div class="col-lg-4">
<div class="row platform-amazon">
<div class="align-self-center col-lg-5">
<img src="img/amazon_music_logo.png" class="img-fluid img-protected logo-cal-style float-lg-none" alt="amazon_music_logo">
</div>
<div class="align-self-center stores-cal-info col-lg-7">
<h2 class="mg-clear cal-store-style">
Amazon Music
</h2>
<p class="currency mg-clear text-lg-left">US$ ${(numeroStreams.value*dolar.Amazon).toFixed(2)}</p>
</div>
</div>
</div>
</div>
<div class="row voffset">
<div class="col-lg-4">
<div class="row platforms-apple">
<div class="align-self-center col-lg-5">
<img src="img/apple_music_logo.png" class="img-fluid img-protected logo-cal-style float-lg-none" alt="youtube_music_logo">
</div>
<div class="align-self-center col-lg-7">
<h2 class="mg-clear cal-store-style">
Apple Music
</h2>
<p class="currency mg-clear text-lg-left">US$ ${(numeroStreams.value*dolar.Apple).toFixed(2)}</p>
</div>
</div>
</div>
<div class="col-lg-4">
<div class="row platforms-ytmusic">
<div class="align-self-center col-lg-5">
<img src="img/youtube_music_logo.png" class="img-fluid img-protected logo-cal-style float-lg-none" alt="youtube_music_logo">
</div>
<div class="align-self-center col-lg-7">
<h2 class="mg-clear cal-store-style">
Youtube Music
</h2>
<p class="currency mg-clear text-lg-left">US$ ${(numeroStreams.value*dolar.Ytmusic).toFixed(2)}</p>
</div>
</div>
</div>
<div class="col-lg-4">
<div class="row platforms-tidal">
<div class="align-self-center col-lg-5">
<img src="img/tidal_logo.png" class="img-fluid img-protected logo-cal-style float-lg-none" alt="tidal_logo">
</div>
<div class="align-self-center col-lg-7">
<h2 class="cal-store-style mg-clear">
Tidal
</h2>
<p class="currency mg-clear">US$ ${(numeroStreams.value*dolar.Tidal).toFixed(2)}</p>
</div>
</div>
</div>
</div>
<div class="row voffset">
<div class="col-lg-4">
<div class="row platforms-soundcloud">
<div class="align-self-center col-lg-5">
<img src="img/soundcloud-logo.png" class="img-fluid img-protected logo-cal-style float-lg-none" alt="soundcloud_logo">
</div>
<div class="align-self-center col-lg-7">
<h2 class="mg-clear cal-store-style">
SoundCloud
</h2>
<p class="currency mg-clear text-lg-left">
$ 10
</p>
</div>
</div>
</div>
<div class="col-lg-4">
<div class="row platforms-tiktok">
<div class="align-self-center col-lg-5">
<img src="img/tiktok_logo.png" class="img-fluid img-protected logo-cal-style float-lg-none" alt="tiktok_logo">
</div>
<div class="align-self-center col-lg-7">
<h2 class="cal-store-style mg-clear">
TikTok
</h2>
<p class="currency mg-clear">
$ 10
</p>
</div>
</div>
</div>
<div class="col-lg-4">
<div class="row platforms-youtube">
<div class="col-lg-6 align-self-center">
<img src="img/youtube_logo.png" class="img-fluid img-protected logo-cal-style float-lg-none" alt="youtube_logo">
</div>
<div class="col-lg-6 align-self-center">
<h2 class="cal-store-style mg-clear">
Youtube
</h2>
<p class="currency mg-clear">US$ ${(numeroStreams.value*dolar.Yt).toFixed(2)}</p>
</div>
</div>
</div>
</div>
</div>
</div>`
} else {
window.alert('Estimated streams number cannot be blank.')
}
}
Not fixed
Could you try to implement this maybe on a simple page?