Ich habe eine Reihe von select
Elementen in einer Form, mit der ich das Jquery Chosen-Plugin verwende . Wie kann ich das Formular zurücksetzen? Folgendes funktioniert nicht:
<input type="reset" />
Ich habe eine Reihe von select
Elementen in einer Form, mit der ich das Jquery Chosen-Plugin verwende . Wie kann ich das Formular zurücksetzen? Folgendes funktioniert nicht:
<input type="reset" />
Antworten:
Sie müssen den Wert des Feldes zurücksetzen und dann das liszt:updated
Ereignis an der Eingabe auslösen , damit es aktualisiert wird. Ich habe hier mit einem funktionierenden Beispiel herumgespielt.
$(".chzn-select").chosen();
$('a').click(function(){
$(".chzn-select").val('').trigger("liszt:updated");
});
Seit der Veröffentlichung von gewähltem v1.0 heißt der Trigger nun 'gewählt: aktualisiert'. Jeder, der diese neue Version verwendet, muss das Update mit auslösen
$(".chosen-select").val('').trigger("chosen:updated");
$selectField.val([]).trigger('chosen:updated')
scheint den Trick zu tun
Seit der Veröffentlichung von gewähltem v1.0 heißt der Trigger nun 'gewählt: aktualisiert'. Jeder, der diese neue Version verwendet, muss das Update mit auslösen
$(".chosen-select").val('').trigger("chosen:updated");
Verwenden Sie Folgendes, um das Zurücksetzen auf natürliche Weise zu ermöglichen:
$("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");
Das hat bei mir funktioniert
Für einen stressfreien Ansatz ... vorausgesetzt, Ihre Eingaben befinden sich in <form>
Tags:
<form>
<!-- your selects go here and any other input fields -->
<input type="reset" value="Reset">
</form>
Das würde ich tun:
$("input[type='reset'], button[type='reset']").click(function(e){
setTimeout(function(){ $("select").trigger("chosen:updated"); }, 50);
});
Siehe Geige hier .
Keine der vorherigen Optionen funktioniert für mich. Ich musste es wie in der alten Schule machen, sogar mit einheimischem Javascript. Hier ist der Code:
$('#dllSample option').each(function(){
$(this)[0].selected = false;
});
$("#dllSample").trigger("chosen:updated");
Keine der Antworten hier hat bei mir funktioniert. Ich benutze ausgewählte Auswahl mit dem Mehrfachattribut. Die normale Schaltfläche zum Senden eines Formulars hat den Trick ebenfalls nicht ausgeführt. Also hatte ich gerade eine Funktion, die dies beim Klicken tat.
//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();
}
Manchmal müssen Sie die ausgewählte Auswahl zurücksetzen, die aufgerufen wird.
Ich mache das
jQuery.fn.chosen_reset = function(n){
$(this).chosen('destroy');
$(this).prop('selectedIndex', 0);
$(this).chosen(n)
}
Rufen Sie diese Funktion so auf, mit den Optionen als Argument
$('select').chosen_reset({width:'369px'});
In jQuery sollte so etwas funktionieren
<input name="Text1" id="something" type="text">
<input type="reset" id="reset_me"/>
$("#reset_me").click(function() {
$("#something").val("");
});