Tengo un control de servidor textbox asp.net. Estoy modificando el valor de la caja de texto de javascript que quiero detectar cuando se cambia el texto de la caja de texto. Intenté el evento de cambio que se invoca en las fouc perdidas cuando cambia el texto. Pero en mi caso, estoy cambiando el texto de Javascript. ¿Cómo puedo conseguir esto?Cómo detectar el evento de cambio de cuadro de texto desde javascript
Respuesta
Al actualizar la propiedad value
no se activará el evento de cambio. El evento de cambio es activado por el usuario.
Usted puede escribir una función que cambia el valor y lo hace cualquier otra cosa que hay que hacer ...
function changeTextarea(str) {
document.getElementById('a').value = str;
// Whatever else you need to do.
}
... o sondear el valor textarea
's ...
(function() {
var text = getText();
var getText = function() {
return document.getElementById('a').value;
}
setInterval(function() {
var newtext = getText();
if (text !== newText) {
// The value has changed.
}
text = newText;
}, 100);
})();
... o explícitamente llame al evento onchange()
usted mismo.
document.getElementById('a').onchange();
(Asumiendo que configura el evento con onchange
propiedad.)
Las soluciones no son muy grandes soluciones. De cualquier manera, necesita hacer alguna intervención para activar código adicional al actualizar una propiedad textarea
value
.
Si usted podría utilizar jQuery, sería algo como esto
$('#id_of_text_area').change(function(){
//do something
});
Se podría forzar una devolución de datos de Javascript y por lo tanto forzando un evento de recarga de la página. En la página.GetPostBackEventReference() puede manejar el evento y quizás desencadenar algún otro evento.
Esto no es una buena solución thougth y realmente recomendamos que lo hace todo a través de javascript ni deje caer el javascript y dejar todo lo hadle .NET, tal vez con Ajax.NET
La siguiente link explica hwo lo haces para un botón normal, pero no debería ser difícil hacerlo para un evento onchange.
usando jQuery se puede asignar un manejador de 'cambio' e invocar el controlador de la siguiente manera:
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
//makes 'DetectChange' the handler when TextBox1 changes...
$('#TextBox1').change(function() {
DetectChange();
});
});
function DetectChange() {
alert("TextBox1 has been changed");
}
function ClickTheButton() {
// .val actually 'changes the value'
// while you have to add .change() to invoke the actual change event handler...
$('#TextBox1').val("Changed When Button Clicked").change();
//return false prevents the click event of the button from doing a post back
//keeping everything on the client for this sample..
return false;
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<input id="Button1" type="button" value="Change TextBox1" onclick="return ClickTheButton();" />
</div>
</form>
</body>
</html>
¿Por qué no pasas 'DetectChange' directamente al método' click() '? – alex
@Alex OP dice 'Pero en mi caso, estoy cambiando el texto de Javascript', así que usé el evento click del botón para simular ese elemento del escenario. No sé "qué" javascript OP usa o cómo se invoca, así que solo comencé la demostración que haría algo similar. Tiene razón en que '.change' podría llamarse desde el clic y si eso satisface las necesidades del OP, entonces es genial. –
- 1. Javascript cuadro de texto Evento
- 2. Evento de cambio de texto de Backbone.js
- 3. entrada de texto html Evento de cambio
- 4. detectando el cambio en un cuadro de entrada de texto usando jquery/javascript
- 5. Evento para detectar el cambio de un control de número HTML5 en Webkit/Chrome?
- 6. ¿Cómo acceder a un cuadro de texto HTML desde javascript?
- 7. detectar pegar en el cuadro de entrada
- 8. Detectar pegar en el cuadro de entrada
- 9. Ruby on Rails: cuadro desplegable en el evento de cambio
- 10. Controlar el evento de cambio de texto de entrada
- 11. botón clic evento perdido debido al cuadro de alerta en cuadro de texto evento onblur
- 12. javascript/html autocompletar el cuadro de texto
- 13. JavaScript detectar un evento AJAX
- 14. Cómo adjuntar el evento OnClick para un cuadro de texto generado por JavaScript?
- 15. Detectar combinación de evento clave
- 16. Evento de incendio en el cuadro de texto perder enfoque
- 17. Cómo detectar el estado HTTP desde JavaScript
- 18. conjunto de texto en el campo de texto/cuadro de texto con el marco de la automatización y obtener el evento de cambio
- 19. Validación de cuadro de texto, problema de cambio de enfoque
- 20. Javascript presentar cuadro de texto en ENTER
- 21. Cómo obtener el valor del cuadro combinado de kendo en el evento de cambio
- 22. ¿Cómo detectar el botón de radio? ¿Deseleccionar evento?
- 23. JavaScript: Cómo simular evento de cambio en Internet Explorer (delegación)
- 24. ¿Cómo hacer el evento de pulsación de tecla del cuadro de texto asp?
- 25. obtener elemento, provocó el evento de cambio en javascript
- 26. knockout.js cambio de evento de cuadro de entrada - pasa el valor anterior
- 27. Insertar texto en el cuadro de texto de otra aplicación
- 28. evento de cambio no se activa cuando el cambio proviene de otra función
- 29. javascript - desenfocar un cuadro de texto
- 30. Javascript/jQuery detectar cambio de hash solo en el botón de navegación hacia atrás/adelante clic
que sin duda puede hacer esto ... ver más adelante. –
@Cos Eso es con jQuery, del cual el OP nunca mencionó. También llamas explícitamente a 'change()', que es básicamente lo que sugerí en mi respuesta. – alex
@Alex jquery es javascript (o más bien una colección de javascript) y demuestra que la invocación de '.change()' logrará el objetivo que el OP establece como una mejor guía que "hace lo que sea necesario" –