Pegando valor de INPUT dentro de um foreach com jQuery
Galera blza? Então to com o seguinte problema gostaria da ajuda de vocês.
Tenho um input dentro de um foreach que segue abaixo.
<input type="number" onchange="cadastraNotaImportada('<?=$disciplina['nome_disciplina'];?>')" class="form-control" name="nota1bm" value="">
Em uma outra página jscript.js
Tenho a chamada da função cadastrarNotaImportada.
Como eu faço pra pegar o valor do input de cima?? Tentei de todas as formas não consegui. Essa foi a última tentativa antes da postagem da pergunta.
function cadastraNotaImportada(nomeDisciplina) {
$(document).ready(function(){
var teste = $(this).val();
alert(teste);
});
}
Tenho um input dentro de um foreach que segue abaixo.
<input type="number" onchange="cadastraNotaImportada('<?=$disciplina['nome_disciplina'];?>')" class="form-control" name="nota1bm" value="">
Em uma outra página jscript.js
Tenho a chamada da função cadastrarNotaImportada.
Como eu faço pra pegar o valor do input de cima?? Tentei de todas as formas não consegui. Essa foi a última tentativa antes da postagem da pergunta.
function cadastraNotaImportada(nomeDisciplina) {
$(document).ready(function(){
var teste = $(this).val();
alert(teste);
});
}
Lindoberto Araújo
Curtidas 0
Melhor post
Lindoberto Araújo
02/01/2018
Galera eu consegui, não sei se é a forma correta, porém como funcionou eu vou ficar usando e pesquisando se existe uma forma melhor. Mais se alguém estiver precisando segue como ficou o código
<input type="number" onchange="cadastraNotaImportada('<?=$disciplina['nome_disciplina'];?>',this.value)" class="form-control disciplina" name="<?=$disciplina['nome_disciplina'];?>" value="">
function cadastraNotaImportada(nomeDisciplina, value) { $(document).ready(function(){ alert(value); }); }
GOSTEI 2
Mais Respostas
Rander Freitas
02/01/2018
Olá Marcelo,
Eu não entendi porque você imprime o nome da disciplina dentro da função javascript "cadastraNotaImportada('<?=$disciplina['nome_disciplina'];?>'". Pois você já imprime o nome da disciplina o atributo name do input. Você também poderia ter feito o seguinte:
Qualquer dúvida, estamos aí!
Valeu!
Eu não entendi porque você imprime o nome da disciplina dentro da função javascript "cadastraNotaImportada('<?=$disciplina['nome_disciplina'];?>'". Pois você já imprime o nome da disciplina o atributo name do input. Você também poderia ter feito o seguinte:
<input type="number" class="form-control disciplina" name="<?=$disciplina['nome_disciplina'];?>" value="">
$(document).ready(function(){ $(input[type="number"]).change(function(){ alert($(this).val()); }); });
Qualquer dúvida, estamos aí!
Valeu!
GOSTEI 2
Kelvin Andrade
02/01/2018
Olá Marcelo,
Este problema é bem comum acontecer, não é o input que está chamando a função que você criou e sim o $(document), logo o this terá outro escopo. Você pode resolver isso passando o this como parâmetro, assim como fez!
ou
Tente colocar o seguinte:
Este problema é bem comum acontecer, não é o input que está chamando a função que você criou e sim o $(document), logo o this terá outro escopo. Você pode resolver isso passando o this como parâmetro, assim como fez!
onchange="cadastraNotaImportada('<?=$disciplina['nome_disciplina'];?>',this.value)"
ou
onchange="cadastraNotaImportada('<?=$disciplina['nome_disciplina'];?>',this)"
Tente colocar o seguinte:
$(document).ready(function(){ $('input.disciplina').on('change', function(){ console.log(this); } });
GOSTEI 1
Lindoberto Araújo
02/01/2018
Rcarlos, primeiro obrigado pela ajuda, agora deixa eu te explicar o pq que chamei o nome da disciplina dentro da função. Esse input é gerado dentro de um foreach então a quantidade de disciplinas pode variar, em uma chamada pode vim Português e matemática e em outra pode vim História e Geografia então eu pego o nome pra saber qual disciplina estou lhe dando e qual salvar as informações no BD, está correto a lógica?
GOSTEI 0
Lindoberto Araújo
02/01/2018
Olá Marcelo,
Este problema é bem comum acontecer, não é o input que está chamando a função que você criou e sim o $(document), logo o this terá outro escopo. Você pode resolver isso passando o this como parâmetro, assim como fez!
ou
Tente colocar o seguinte:
Este problema é bem comum acontecer, não é o input que está chamando a função que você criou e sim o $(document), logo o this terá outro escopo. Você pode resolver isso passando o this como parâmetro, assim como fez!
onchange="cadastraNotaImportada('<?=$disciplina['nome_disciplina'];?>',this.value)"
ou
onchange="cadastraNotaImportada('<?=$disciplina['nome_disciplina'];?>',this)"
Tente colocar o seguinte:
$(document).ready(function(){ $('input.disciplina').on('change', function(){ console.log(this); } });
Obrigado pela dica cara, vou dar uma olhada nessa opção! Obrigado mesmo!
GOSTEI 1