Tengo un montón de select
elementos en un formulario con el que estoy usando el complemento Jquery Chosen . ¿Cómo puedo restablecer el formulario? Lo siguiente no funciona:
<input type="reset" />
Tengo un montón de select
elementos en un formulario con el que estoy usando el complemento Jquery Chosen . ¿Cómo puedo restablecer el formulario? Lo siguiente no funciona:
<input type="reset" />
Respuestas:
Deberá restablecer el valor del campo, luego activar el liszt:updated
evento en la entrada para que se actualice, he hecho un violín con un ejemplo de trabajo aquí.
$(".chzn-select").chosen();
$('a').click(function(){
$(".chzn-select").val('').trigger("liszt:updated");
});
Desde el lanzamiento de la v1.0 elegida, el disparador ahora se llama 'elegido: actualizado'. Cualquiera que use esta nueva versión debe activar la actualización usando
$(".chosen-select").val('').trigger("chosen:updated");
$selectField.val([]).trigger('chosen:updated')
parece hacer el truco
Desde el lanzamiento de la v1.0 elegida, el disparador ahora se llama 'elegido: actualizado'. Cualquiera que use esta nueva versión debe activar la actualización usando
$(".chosen-select").val('').trigger("chosen:updated");
para que el reinicio funcione, naturalmente, use esto:
$("input[type='reset'], button[type='reset']").click(function(e){
e.preventDefault();
var form = $(this).closest('form').get(0);
form.reset();
$(form).find('select').each(function(i, v) {
$(v).trigger('chosen:updated');
});
}
$("#Your_id").trigger("chosen:updated");
Esto funcionó para mi
Para un enfoque más sencillo ... asumiendo que sus entradas están dentro de las <form>
etiquetas:
<form>
<!-- your selects go here and any other input fields -->
<input type="reset" value="Reset">
</form>
Esto es lo que haría:
$("input[type='reset'], button[type='reset']").click(function(e){
setTimeout(function(){ $("select").trigger("chosen:updated"); }, 50);
});
Vea el violín aquí .
Ninguna de las opciones anteriores me funciona. Tuve que hacerlo como en la vieja escuela, incluso usando javascript nativo, aquí está el código:
$('#dllSample option').each(function(){
$(this)[0].selected = false;
});
$("#dllSample").trigger("chosen:updated");
Ninguna de las respuestas aquí funcionó para mí. Estoy usando la selección elegida con el atributo múltiple. El botón normal para enviar formulario tampoco funcionó. Así que tuve una función para hacer esto al hacer clic.
//Gets the selected values
var selected = [];
for (var option of document.getElementById('mySelect').options) {
if (option.selected) {
selected.push(option.value);
}
}
//Resets the form
document.getElementById('form1').reset();
//Chosen values doesnt get reset, so we do this manually
//Removes the values selected by clicking on the x icon
$link = $('a.search-choice-close');
var i;
for (i = 0; i < selected.length; i++) {
$link[i].click();
}
A veces, debe restablecer la selección que se solicitó.
hago esto
jQuery.fn.chosen_reset = function(n){
$(this).chosen('destroy');
$(this).prop('selectedIndex', 0);
$(this).chosen(n)
}
Y llama a esta función así, con las opciones como argumento
$('select').chosen_reset({width:'369px'});
En jQuery, algo como esto debería funcionar
<input name="Text1" id="something" type="text">
<input type="reset" id="reset_me"/>
$("#reset_me").click(function() {
$("#something").val("");
});