Return Var Value In User Message - javascript

I'm new to programming and I'm currently learning JavaScript. Sorry if my code is not the most readable ever :)
I'm using this function here to calculate mortgage values (messages and business rules are in Portuguese/Brazilian standards):
function calculaFinanc() {
var amount1 = document.getElementById("amount1").value;
var amount2 = document.getElementById("amount2").value;
var teto = (amount1 / 100) * 30;
var parcela = amount2 / 360;
if (Math.round(teto) < Math.round(parcela)) {
return [document.getElementById("userMessage").className += 'alert alert-danger' , document.getElementById("userMessage").innerHTML = "<p>Você não pode financiar este imóvel. O valor da parcela de seu financiamento não poderá ultrapassar 30% valor da sua renda mensal</p>"];
} else { //... rest omitted for brevity
Inside the <p> tag in the return statement, I'd like to display the value of variables "teto" and "parcela". How on earth do I do that? No matter what I tried, it doesn't show anything (or it just displays the text "teto").
e.g. this is how I'd like to return:
return [document.getElementById("userMessage").className += 'alert alert-danger' , document.getElementById("userMessage").innerHTML = "<p>Você não pode financiar este imóvel. O valor da parcela de seu financiamento não poderá ultrapassar 30% valor da sua renda mensal ($var_teto)</p>"];

Just add it into the string.
return [document.getElementById("userMessage").className += 'alert alert-danger' , document.getElementById("userMessage").innerHTML = "<p>Você não pode financiar este imóvel. O valor da parcela de seu financiamento não poderá ultrapassar 30% valor da sua renda mensal "+teto+"</p>"];

Related

Consumo de API previsao do tempo

Olá, boa tarde. Estou fazendo o consumo de uma API, fiz tudo certinho passo a passo, deu tudo certo. Mas os >icones do tempo nao estão aparecendo pra mim. De todo o código é a unica coisa que nao está funcionando.
dadeSpan.innerText = `${data.name}, ${data.sys.country}`;
temperatura.innerText = `${parseFloat(data.main.temp.toFixed())}º C`
ceu.innerText = `${data.weather[0].description}`
img02.src = `http://openweathermap.org/img/wn/${data.weather[0].icon}#2x.png`

Uncaught (in promise) TypeError: d is not a function - tensorflow js

i'm trying to do a prediction with tensorflow js, but when I try to predict have de following error:
Uncaught (in promise) TypeError: d is not a function
at tfjs#latest:17:162006
at tfjs#latest:17:159769
at e.t.scopedRun (tfjs#latest:17:159898)
at e.t.tidy (tfjs#latest:17:159666)
at n (tfjs#latest:17:161982)
at tfjs#latest:17:162468
at e.t.scopedRun (tfjs#latest:17:159898)
at e.t.runKernelFunc (tfjs#latest:17:162190)
at slice_ (slice.js:177:17)
at slice (operation.js:45:22)
This is my javascript code:
<script>
async function inicializar() {
alert("estoy en inicialize");
document.getElementById('prediccion').addEventListener('click', () => predecir());
};
async function predecir() {
alert("estoy en predecir"); //Mensaje para chequear que entre aca
const modelo = await tf.loadLayersModel('trained-model/model.json');
const canvas = document.getElementById('output');
alert(canvas);// Mensaje para ver si lee canvas como elemento HTML
let tensorImg = tf.browser.fromPixels(canvas).resizeNearestNeighbor([150, 150]).toFloat().expandDims();
alert("pasa esto"); //Mensaje para chequear que entre aca
alert(tensorImg); //Mensaje para ver si lee el tensor de la imagen
prediction = modelo.predict(tensorImg).data(); //Aca me da error!!!!! TypeError: d is not a function
alert("pase hasta aca"); //Mensaje para chequear que entre aca, pero no llega
var respuesta;
if (prediction <= .5) {
respuesta = "Gato";
} else {
respuesta = "Perro";
}
document.getElementById("prediccion").innerHTML = respuesta;
};
inicializar()
</script>
Thanks for your help!

Button don't redirect using onClick - Javascript HTML

i'm working in a simple web, and i use a botton for enter to the principal page, but nothing happens, only work if i don't use the function, see:
With this don´t work:
The button:
<center><input type="button" name="Entrar" onClick="iniciar()" value=" Ingresar " >
The function "iniciar()":
<script type="text/javascript" language="javascript">
function iniciar(){
var value
var clase,nombre,validate="ATS1"
nombre=window.prompt("Digite su primer nombre");
clase=prompt("Digite su codigo de seccion de clase (letras en mayuscula)");
if (clase==validate){
value = 3;
}
else{
value = 0;
}
if (value == 3){
window.alert("Ingreso exitoso, presione Aceptar.")
var pag="formulario.html"
alert("Aceptado \nPulse Aceptar y sera redireccionado en 2 segundos.", setTimeout("location.href=pag",2000))
//Dos segundos para redireccionar
}
else{
alert("Lo sentimos mucho, usted no tiene acceso a la pagina. Usted pertenece a otro curso, adios.")
close()}
}
</script>
But if i don't use the button, i use the script of java directly (no function) in the page this is working (redirect)
<script type="text/javascript" language="javascript">
var value
var clase,nombre,validate="ATS1"
nombre=window.prompt("Digite su primer nombre");
clase=prompt("Digite su codigo de seccion de clase (letras en mayuscula)");
if (clase==validate){
value = 3;
}
else{
value = 0;
}
if (value == 3){
window.alert("Ingreso exitoso, presione Aceptar.")
var pag="formulario.html"
alert("Aceptado \nPulse Aceptar y sera redireccionado en 2 segundos.", setTimeout("location.href=pag",2000))
//Dos segundos para redireccionar
}
else{
alert("Lo sentimos mucho, usted no tiene acceso a la pagina. Usted pertenece a otro curso, adios.")
close()}
</script>
I hope that they can understand me :/
Thanks
=================================================================
See all the code (i use the syntax that #Moogs send me it's work :D):
<!doctype html>
<html>
<head>
<title>Formulario</title>
<script type="text/javascript" language="javascript">
function cerrar(){
close()
}
function iniciar(){
var value
var clase,nombre,validate="ATS1"
nombre=window.prompt("Digite su primer nombre");
clase=prompt("Digite su codigo de seccion de clase (letras en mayuscula)");
if (clase==validate){
value = 3;
}
else{
value = 0;
}
if (value == 3){
window.alert("Ingreso exitoso, presione Aceptar.")
var pag="formulario.html"
alert("Aceptado \nPulse Aceptar y sera redireccionado en 2 segundos.");
setTimeout(function() {
window.location.href = pag;
}, 2000)
//Dos segundos para redireccionar
}
else{
alert("Lo sentimos mucho, usted no tiene acceso a la pagina. Usted pertenece a otro curso, adios.")
close()}
}
document.querySelector('[type="button"]').onclick = iniciar;
</script>
</head>
<body>
<center><font face="Lucida handwriting"><h1><b><i>Formulario</i></b></h1></font></center><hr>
<br>
<center><input type="button" name="Entrar" onClick="iniciar()" value=" Ingresar ">
<input type="button" name="Salir" onClick="cerrar()" value=" Salir ">
</center>
</body>
</html>
Use a function for the setTimeout callback instead of an eval string and place the timeout after the alert instead of as an alert argument.
function iniciar() {
var value = 0;
var clase;
var nombre;
var validate = "ATS1";
nombre = prompt("Digite su primer nombre");
clase = prompt("Digite su codigo de seccion de clase (letras en mayuscula)");
if (clase === validate) {
value = 3;
}
if (value == 3) {
alert("Ingreso exitoso, presione Aceptar.");
var pag = "formulario.html"
alert("Aceptado \nPulse Aceptar y sera redireccionado en 2 segundos.");
setTimeout(function() {
alert('redirect');
window.location.href = pag;
}, 2000)
} else {
alert("Lo sentimos mucho, usted no tiene acceso a la pagina. Usted pertenece a otro curso, adios.");
close();
}
}
document.querySelector('[type="button"]').onclick = iniciar;
<input type="button" name="Entrar" value=" Ingresar " >
Here i use your code it's working fine:
Check it:
<html>
<head>
</head>
<body>
<style>
</style>
<script type="text/javascript" language="javascript">
function iniciar(){
alert("hello");
var value
var clase,nombre,validate="ATS1"
nombre=window.prompt("Digite su primer nombre");
clase=prompt("Digite su codigo de seccion de clase (letras en mayuscula)");
if (clase==validate){
value = 3;
}
else{
value = 0;
}
if (value == 3){
window.alert("Ingreso exitoso, presione Aceptar.")
var pag="formulario.html"
alert("Aceptado \nPulse Aceptar y sera redireccionado en 2 segundos.", setTimeout("location.href=pag",2000))
//Dos segundos para redireccionar
}
else{
alert("Lo sentimos mucho, usted no tiene acceso a la pagina. Usted pertenece a otro curso, adios.")
close()}
}
</script>
<center><input type="button" name="Entrar" onClick="iniciar()" value=" Ingresar " >
</body>
</html>
Check Fiddle here.

To count number of rows in a table if the rows were created after the DOM loaded

I create rows after the DOM loaded, but I want to know how to count number of rows for eliminate the last.
I have this.
<script type="text/javascript">//Procesamiento del formulario.
$(document).ready(function(){
var cuentaTr = $('#elementos >tbody >tr').length - 1; //Cuenta el número de filas que tiene la tabla originalmente, es 1.
$('#agregar').click(function(){ //Clic en el botón que agrega nueva fila.
cuentaTr++; //Es el número de fila que le corresponde a cada una que se crea.
var nume = $('#elementos >tbody >tr >td').length; //Obtener el número de celdas
var capa = document.getElementById("elementos"); //Obtener el elemento con el id elementos
var tr = ("tr"); //Crear una tag tr
capa.appendChild(tr); //Agregar la tag al elemento con id elementos.
var nuevaLetra = "A"; //La variable con la que se le asigna una letra a cada columna.
for (var i = 1; i <= nume; i++) {
$('<td><input type="text" class="prueba" id="'+nuevaLetra+cuentaTr+'" name="columna'+nuevaLetra+cuentaTr+'" required/></td>').appendTo('#elementos'); //Creación de nuevo input. THIS IS THE IMPORTANT!
var ASCII = nuevaLetra.charCodeAt(); //Obtener código ASCII
var aumento = ((ASCII+1 >= 65 && ASCII+1 <= 90) || (ASCII+1 >= 97 && ASCII+1 <= 122)) ? ASCII+1 : ASCII; //Incremenar la letra
var nuevaLetra = String.fromCharCode(aumento); //Tranformar el código a letra.
};
if (cuentaTr == 2){
$('<button type="button" id="eliminame">-</button>').insertAfter('#agregar'); //Creación del botón de eliminación de filas
};
});
$(document).on('click', '#eliminame', function(){ //Función que elimina las filas HERE IS MY DUDE.
$('#elementos tbody tr:last').remove(); //I WANT TO REMOVE THE LAST ROW. THIS CODE ELIMINATE ONLY THE ROWS CREATE WHEN DOM LOADED.
cuentaTr--;
if (cuentaTr == 1) {
$(this).remove();
};
});
});
</script>
What I can to do?
Thank you!
I'm sorry for my English. I can't speak English well.
Looks like there are some problems on how the tr is appended to the table, try
$(document).ready(function () {
var cuentaTr = $('#elementos >tbody >tr').length - 1; //Cuenta el número de filas que tiene la tabla originalmente, es 1.
$('#agregar').click(function () { //Clic en el botón que agrega nueva fila.
cuentaTr++; //Es el número de fila que le corresponde a cada una que se crea.
var nume = $('#elementos >tbody >tr:first >td').length; //Obtener el número de celdas
var capa = $("#elementos"); //Obtener el elemento con el id elementos
var tr = $('#tr').appendChild(tr); //Agregar la tag al elemento con id elementos.
var nuevaLetra = "A"; //La variable con la que se le asigna una letra a cada columna.
for (var i = 1; i <= nume; i++) {
$('<td><input type="text" class="prueba" id="' + nuevaLetra + cuentaTr + '" name="columna' + nuevaLetra + cuentaTr + '" required/></td>').appendTo(tr); //Creación de nuevo input. THIS IS THE IMPORTANT!
var ASCII = nuevaLetra.charCodeAt(); //Obtener código ASCII
var aumento = ((ASCII + 1 >= 65 && ASCII + 1 <= 90) || (ASCII + 1 >= 97 && ASCII + 1 <= 122)) ? ASCII + 1 : ASCII; //Incremenar la letra
var nuevaLetra = String.fromCharCode(aumento); //Tranformar el código a letra.
};
if (cuentaTr == 2) {
$('<button type="button" id="eliminame">-</button>').insertAfter('#agregar'); //Creación del botón de eliminación de filas
};
});
$(document).on('click', '#eliminame', function () { //Función que elimina las filas HERE IS MY DUDE.
$('#elementos tbody tr:last').remove(); //I WANT TO REMOVE THE LAST ROW. THIS CODE ELIMINATE ONLY THE ROWS CREATE WHEN DOM LOADED.
cuentaTr--;
if (cuentaTr == 1) {
$(this).remove();
};
});
});
var cuentaTr = $('#elementos >tbody >tr').length - 1; (already in your code) should give you the number of rows (minus one). Maybe make a jsfiddle so we can debug what's going on?

onChange event not working on IE9/10 when there are other events?

I'm facing this embarrassing situation. First, I'm on IE 10 right now, but this problem has been detected on IE9 as well. I have this input field and I need 2 events to work on it:
- onKeyUp, to check if the field's value is numeric; and
- onChange, to run some JS when the right number is inputted
If assigned separately, they work just fine. However, whenever I set these 2 events on the input field, the onChange event won't trigger, no matter what. All the other JS on this page has been stripped to prevent interference.
Below is the JS code for the onKeyUp:
<script>
function CampoNumerico(campo){
var valor = campo.value;
var novoValor = '';
var pontoPosicao = '';
if (isNaN(valor)){ // se nao for numero, devemos retornar o campo ao ultimo valor valido
alert(valor + " nao eh um numero valido");
novoValor = campo.defaultValue;
}
else{ //sendo um numero, buscamos a posicao de sua eventual virgula
valor = valor.split('');
for (var i = 0; i < valor.length; i++){
if (valor[i] == '.' && pontoPosicao == ''){
pontoPosicao = i;
}
}
// se nao houver ponto, o novo valor do campo sera igual ao valor de entrada da funcao
if ( pontoPosicao == ''){
for (var i = 0; i < valor.length; i++){
novoValor += valor[i];
}
}
else{ // se houver o ponto, registramos o novo valor igual ao valor de entrada, ate o limite de casas decimais
var tamanho = ((pontoPosicao + 3) < valor.length)? pontoPosicao + 3 : valor.length;
for (var i = 0; i < tamanho; i++){
novoValor += valor[i];
}
}
if (pontoPosicao != '' && pontoPosicao < (valor.length - 3)){ // se houver um ponto e mais de 2 casas decimais, alertamos o usario e desconsideramos as casas adicionais
alert("Aviso: " + campo.value + " tem mais de 2 casas decimais; serão consideradas apenas as primeiras casas - " + novoValor);
}
}
// terminamos por atualizar o valor do campo
campo.value = novoValor;
} // fim da CampoNumerico
</script>
Below is the field I'm trying to assign this script to:
<input type='text' name='campo' value='0' onchange='alert("1")' onkeyup='CampoNumerico(this)'>
At this point I just want to alert "1" when the onchange is triggered, but I'm unable to do even this simple action...
Interestingly, this coding works on other browsers just fine - Chrome & Firefox. Can anyone help me with this embarrassing situation? Thanks in advance for any thoughts.
EDIT - input field now visible separately

Categories

Resources