Tengo un evento de entrada en un área de texto para verificar la altura y cambiar su tamaño. Ahora necesito editar el valor a veces. Hago esto simplemente editando el val() en jQuery, pero eso no desencadena el evento oninput. ¿Hay alguna manera de desencadenar el evento oninput programáticamente con jQuery?Evento de entrada de fuego con jQuery
Respuesta
oninput aún no está en JQuery.
Se puede ver puestos sobre él aquí:
http://forum.jquery.com/topic/html5-oninput-event
http://bugs.jquery.com/ticket/9121
Básicamente, el consenso general es que ellos no quieren todavía.
Pero no, cambiar val() directamente no activará la entrada de html5 porque su especificación indica que es cuando el usuario, en la interfaz de usuario, cambia el valor de la entrada.
Editar:
Sin embargo alguien amablemente ha hecho un plugin para las personas que deseen utilizar HTML5 únicos eventos: https://github.com/dodo/jquery-inputevent
El enlace al proyecto de Andy está muerto. Hay un fork que está en desarrollo activo [en github] (https://github.com/dodo/jquery-inputevent). –
@JoeTaylor, puede editar la respuesta para actualizar el vínculo inactivo con el nuevo. Por cierto, ya lo hice. –
Quizás esto fue correcto cuando se hizo la pregunta. Pero desde jQuery 1.0 existe el método desencadenante. – Fernando
Simplemente puede invocar, por ejemplo .:
$("input")[0].oninput = function() {
alert("hello");
};
$("input")[0].oninput();
... pero como señala @Sammaye, jQuery no tiene explícita "oninput" manipulador, por lo que tendrá que utilizar POJS.
Puede enlazar a la entrada y el cambio:
entrada habrá activado en la entrada del usuario
cambio se activará en el cambio() yt O Val (" ") asignaciones, pero después de algunos cambios
$("#textarea").bind("input change", function() {
alert("change happend");
});
...
después de que aglutinaba a cambio puede llamar manualy en cada val ("") Asignación:
$("#textarea").val("text").change();
o puede sobrescribir jQuery val (" ") método para desencadenar cambio en cada val usuario ("") llamada:
(function ($) { var fnVal = $.fn.val;
$.fn.val = function(value) {
if (typeof value == 'undefined') {
return fnVal.call(this);
}
var result = fnVal.call(this, value);
$.fn.change.call(this); // calls change()
return result;
};
})(jQuery);
Es demasiado tarde, pero para referencia futura, está el método .trigger.
$("#testArea").on("input", function(e) {
$("#outputArea").text($(e.target).val())
});
$("#testArea").val("This is a test");
$("#testArea").trigger("input");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<input id="testArea" type="text" />
<div id="outputArea"></div>
Pruebe con "pulsación de tecla" o "keydown".
Ejemplo 1:
$("#textarea").keypress(function(){
alert($("#textarea").val());
});
Ejemplo 2:
$("#textarea").keydown(function(){
alert($("#textarea").val());
});
empuje SNIPPET ejecutar código para ver resultados
i ha estado buscando un mejor ejemplo para unirse a un rango de entrada a un valor de entrada y así modifiqué el ejemplo de Fernando en un plugin JQuery, por lo que: para cada <input type="range" min="1" max="100" value="50" id="range1">
tendrá su valor: <input type="text" disabled id="value" class="range1" value="0">
así es como para cualquier rango padres id = "Rango1" hay una Identificación del niño = "valor" class = "Rango1"
<!-- <script src="../js/jquery.js"></script> -->
<script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
1<input type="range" min="1" max="100" value="50" id="range1"><input type="text" disabled id="value" class="range1" value="0"><br>
2<input type="range" min="1" max="100" value="50" id="range2"><input type="text" disabled id="value" class="range2" value="0"><br>
3<input type="range" min="1" max="100" value="50" id="range3"><input type="text" disabled id="value" class="range3" value="0"><br>
4<input type="range" min="1" max="100" value="50" id="range4"><input type="text" disabled id="value" class="range4" value="0"><br>
...<br>
n<input type="range" min="1" max="100" value="50" id="rangen"><input type="text" disabled id="value" class="rangen" value="0"><br>
<script type="text/javascript">
<!--
$(document).ready(function() {
$('input').on("input",function(){
$('input').each(function(index) {
//console.log('1 '+index + ': ' + $(this).text()+',id='+$(this).attr('id'));
if($(this).attr('id')=='value'){
//console.log('2 class='+$(this).attr('class'));
var obj=$('input#'+$(this).attr('class'));
var hisvalue=$(this);
//console.log('3 parent`s value='+obj.val());
obj.on("input",function(){
hisvalue.val(obj.val());
});
}
});
});
$('input').trigger("input");
});
//-->
</script>
- 1. jQuery: Fuego clic en el evento en un lapso de
- 2. ExtJS TreeStore fuego evento de actualización en lugar de crear
- 3. evento Change preferencia con jQuery
- 4. Jquery: cambiar el evento al archivo de entrada en IE
- 5. ¿Por qué jQuery cambia el tamaño del evento al fuego dos veces?
- 6. jQuery entrada de evento no se dispara si la entrada está vacía
- 7. Evento real de desencadenador con jQuery
- 8. Comprobación de entrada en blanco con jQuery
- 9. jQuery desencadena el evento de keyup solo si se adjuntó con jQuery
- 10. jQuery perder evento de foco
- 11. Barra de seguimiento Solo evento de fuego en valor final no cambia el valor de tiempo
- 12. elemento Recuperando con jQuery dentro evento nocaut
- 13. jquery prioridad de evento
- 14. jQuery Entrada enmascarada - Valor de entrada existente
- 15. jQuery onClick evento
- 16. evento de cambio de entrada oculta
- 17. entrada de texto html Evento de cambio
- 18. de jQuery evento click
- 19. Historial de entrada del formulario seleccione evento
- 20. Controlar el evento de cambio de texto de entrada
- 21. jquery: seleccionar texto evento
- 22. Escucha de entrada de rango JQuery
- 23. Obtener valor de texto de entrada en el evento de pulsación de tecla jQuery
- 24. Evento de pulsación de tecla simulando JQuery en un campo de entrada
- 25. JQuery Agregar evento de clic al texto de entrada de radio
- 26. El evento de entrada de cambio no se activa en jquery
- 27. ¿Por qué evento listview fuego que indica que elemento seleccionado no está marcada después de añadir
- 28. ¿Cómo desencadenar un desenfoque/evento de enfoque en un cuadro de texto de entrada usando jquery?
- 29. 2D humo/fuego/niebla algoritmo
- 30. Prevenir un evento jQuery con otro
Para el futuro vis itors: funciona un simple '.on ('input')'. – hauzer
@hauzer tienes toda la razón. Aquí hay una [DEMO] (http://jsfiddle.net/yuvii/QU8Sd/1/) que lo demuestra. probado en Chrome, FF y Opera (y supongo que no habría problemas con las versiones modernas de IE) – yuvi
O simplemente use JS simple: 'element.dispatchEvent (new Event ('input'));' (IE9 +) – Nux