Quero capturar se alguma alteração aconteceu <textarea>
. Como digitar qualquer caractere (excluir, retroceder) ou clicar e colar ou recortar. Existe um evento jQuery que pode ser acionado para todos esses eventos?
Tentei alterar o evento, mas ele aciona o retorno de chamada somente depois de separar o componente.
Uso : desejo ativar um botão se a <textarea>
contiver algum texto.
javascript
jquery
jquery-ui
Lolly
fonte
fonte
Respostas:
Tente realmente:
DEMO
Isso funciona para qualquer alteração que você fizer, digitar, recortar e colar.
fonte
propertychange
há tambéminput
<input type="text">
, não<textarea>
bind
está obsoleto. Useon
:Nota: O código acima será acionado várias vezes, uma vez para cada tipo de gatilho correspondente. Para lidar com isso, faça algo assim:
jsFiddle Demo
fonte
on("change", function() ....
parte não está funcionando para mim. Não aciona nenhum alerta, nem logs do console, nada. Para keyup funciona como um encanto, no entanto.on("change", function() ...
é acionado quando a área de texto perde o foco . Consulte minha pergunta anterior e experimente-a neste assunto - altere a área de texto, clique fora da área de texto e você verá o evento de alteração sendo disparado.Use um
input
evento.fonte
Esta pergunta precisava de uma resposta mais atualizada, com fontes. Isto é o que realmente funciona (embora você não precise acreditar na minha palavra):
1: https://developer.mozilla.org/en-US/docs/Web/Events/input#Browser_compatibility
2: oninput no IE9 não dispara quando pressionamos BACKSPACE / DEL / do CUT
3: https: // msdn .microsoft.com / pt-br / library / ms536956 (v = vs.85) .aspx
4: http://api.jquery.com/prop/#prop-propertyName-function
MAS, para uma solução mais global que você possa usar em todo o projeto , recomendo usar o plugin jQuery de troca de texto para obter um novo
textchange
evento compatível com vários navegadores . Foi desenvolvido pela mesma pessoa que implementou oonChange
evento equivalente ao ReactJS do Facebook, usado por quase todo o site. E acho seguro dizer que, se é uma solução robusta o suficiente para o Facebook, provavelmente é robusta o suficiente para você. :-)ATUALIZAÇÃO: Se você precisar de recursos como suporte a arrastar e soltar no Internet Explorer, poderá conferir a
pandell
bifurcação atualizada mais recentementejquery-splendid-textchange
.fonte
2018, sem JQUERY
A questão é com JQuery, é apenas para sua informação.
JS
HTML
fonte
Aqui está outra versão (moderna), mas um pouco diferente das mencionadas anteriormente. Testado com o IE9:
Para navegadores desatualizados, você também pode adicionar
selectionchange
epropertychange
(como mencionado em outras respostas). Masselectionchange
não funcionou para mim no IE9. Por isso eu adicioneikeyup
.fonte
Tente fazer isso com foco
fonte
tente isso ...
fonte
.delegate é o único que está trabalhando para mim com a jQuery JavaScript Library v2.1.1
fonte
Depois de algumas experiências, criei esta implementação:
Lida com alterações em qualquer tipo de entrada e seleciona, além de áreas de texto, ignorando teclas de seta e coisas como ctrl, cmd, teclas de função, etc.
Nota: Eu só tentei isso no FF, pois é para um complemento do FF.
fonte
Tente isto
fonte
$("#textarea").on('change keyup paste', function() {})
e$('textarea').trigger('change');
puder resolver o problema que impedepaste
trabalhar automaticamente!