Robin
no puedo conseguir .trigger("change")
trabajar. ¿Alguien sabe por qué?
jQuery(document).ready(function () {
jQuery("select[id='DROPDOWNID']").change(function () {
var selectedIndex = jQuery("select[id='DROPDOWNID']").prop('selectedIndex');
switch (selectedIndex) {
case 0:
hideVarforProspekt();
break;
case 1:
hideOrdervarde();
break;
case 2:
break;
case 3:
hideSektor();
break;
}
});
** jQuery("select[id='DROPDOWNID']").trigger("change"); **
function hideVarforProspekt() {
jQuery("input[id='IDFROMSHAREPOINT']").closest('tr').hide();
}
function hideSektor() {
jQuery("table[id='IDFROMSHAREPOINT']").closest('tr').hide();
}
function hideUppskOrder() {
jQuery("input[id='IDFROMSHAREPOINT']").closest('tr').hide();
}
});
Nilesh
El controlador de eventos de cambio debe definirse antes de llamar al .trigger('change')
o .change()
A continuación se muestran 2 escenarios.
Escenario 1: donde se llama al evento de cambio antes de que se defina.
$(document).ready(function()
{
$('#selector').change(); or $('#selector').trigger('change');
$('#selector').on('change', function(){
});
});
Escenario 2: donde se define el controlador de eventos de cambio antes de llamarlo
$(document).ready(function()
{
$('#selector').on('change', function(){
});
$('#selector').change(); or $('#selector').trigger('change');
});
Para mí, el problema se solucionó cuando uso el escenario 2. ¡¡Espero que esto ayude!!
-
Gran hallazgo hombre!! ¡Salud!
– Alias Varghese
24 de marzo de 2017 a las 9:53
-
Gran hallazgo hombre!! ¡Salud! Súper hombre. Muchas gracias me ayudan mucho.
– Denis Bhojvani
10 de octubre de 2018 a las 5:06
Krasimir
A veces, el uso del disparador no es necesario:
// use just jQuery("#DROPDOWNID") instead
var select = jQuery("select[id='DROPDOWNID']");
// placing the handler in separate function
var changeHandler = function () {
var selectedIndex = select.prop('selectedIndex');
switch(selectedIndex) {
case 0:
hideVarforProspekt();
break;
case 1:
hideOrdervarde();
break;
case 2:
break;
case 3:
hideSektor();
break;
}
}
// cache your jQuery selectors. It's a good practice
// and improves the readability
select.change(changeHandler);
// triggering
changeHandler();
-
Esto funcionó cuando se cargó el sitio, pero no cuando cambio en el menú desplegable. ¿Sabes por qué?
– Robin
9 de septiembre de 2013 a las 8:18
-
Sí, simplemente mueva el controlador sobre el evento que se adjunta jsfiddle.net/ccyG8 (También edité mi respuesta).
– Krasimir
9 de septiembre de 2013 a las 8:28
Arun
Aquí hay una versión de trabajo que usa la sintaxis de id:
$(document).ready(function () {
$('select[id=car]').change(function () {
alert("change: " + $(this).val());
});
$("#car").trigger('change');
});
$('#selector').change();
o
$('#selector').trigger('change');
// El segundo me funciona. Pero deberías llamarlo después de la definición de evento de cambio.
Shakti Patel
usó esto:
jQuery("#DROPDOWNID").trigger("change");
¿Puedes comprobar el enlace dado? Manifestación
código HTML
<select id="car">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="opel">Opel</option>
<option value="audi">Audi</option>
</select>
código jquery
$(document).ready(function(){
$("#car").change(function(){
alert("change");
});
$("#car").trigger('change');
});
Resultado :
Es alerta de fuego
Eliminar identificación = de todos los selectores y reemplácelo con #identificación seleccionada
-
No funciona cuando elimino id=. jQuery(“seleccionar[id=’S_x00e4_ljsteg_f9f2bae9-f429-46c6-aa2d-6b126b50056f_$DropDownChoice’]”).trigger(“cambio”); Esto funcionó antes, así que no sé por qué tengo que cambiarlo.
– Robin
9 de septiembre de 2013 a las 8:01
-
usó este jQuery(“#DROPDOWNID”).trigger(“cambio”);
– Shakti Patel
9 de septiembre de 2013 a las 8:21
-
Ah, entonces estás usando
id='«id»'
sintaxis porque sus ID tienen caracteres que requieren escape para representar en un formulario de selector de ID de CSS.– binki
16 de junio de 2014 a las 20:18
tsveti_iko
El .change()
El evento espera hasta que el campo de entrada pierde el foco, por lo que no se activará antes de que haga clic o salga del campo.
Así que solo puedes agregar .blur()
evento después de la .change()
evento como este:
var $element = jQuery("select[id='DROPDOWNID']");
$element.change(function () { ... });
$element.blur();
O puede usar otro evento en lugar de .change()
p.ej .keyup()
, .paste()
etc.
-
No funciona cuando elimino id=. jQuery(“seleccionar[id=’S_x00e4_ljsteg_f9f2bae9-f429-46c6-aa2d-6b126b50056f_$DropDownChoice’]”).trigger(“cambio”); Esto funcionó antes, así que no sé por qué tengo que cambiarlo.
– Robin
9 de septiembre de 2013 a las 8:01
-
usó este jQuery(“#DROPDOWNID”).trigger(“cambio”);
– Shakti Patel
9 de septiembre de 2013 a las 8:21
-
Ah, entonces estás usando
id='«id»'
sintaxis porque sus ID tienen caracteres que requieren escape para representar en un formulario de selector de ID de CSS.– binki
16 de junio de 2014 a las 20:18
dmitry.matora
Me sorprende que nadie mencione esto, pero cuando jQuery("select[id='DROPDOWNID']").trigger("change")
no hace el trabajo (como cuando intenta emular el cambio en el código angular usando Tampermonkey)
jQuery("select[id='DROPDOWNID']")[0].dispatchEvent(new Event('change'))
hace
Y soy el peor cuando se trata de pegar código, ¡lo siento!
– Robin
9 de septiembre de 2013 a las 7:34
¿Puedes mostrar tu
select[id='DROPDOWNID']
¿código HTML?– rajA
9 de septiembre de 2013 a las 7:36
¿Por qué está utilizando el selector de atributos en lugar del selector de ID? Debería ser
$('#DROPDOWNID')
– Arun P Johny
9 de septiembre de 2013 a las 7:36
porque no funciona
– Arun P Johny
9 de septiembre de 2013 a las 7:37
@ArunPJohny: Debido a que en Sharepoint Online, algunos comandos se ejecutan con $, así que intento evitar usarlo.
– Robin
9 de septiembre de 2013 a las 7:39