2014-04-03 11 views
7

Używam kroków jQuery (https://github.com/rstaib/jquery-steps/wiki), aby utworzyć krok po kroku formularz do wypełnienia przez użytkowników. Działa świetnie, ale muszę mieć możliwość zresetowania go. Po przesłaniu formularza przez użytkownika (używając ajax, aby strona się nie odświeżyła), chciałbym przedstawić świeżego kreatora użytkownika.Kroki jQuery - Kreator resetowania bez przeładowania strony

Czy istnieje sposób na zresetowanie kreatora? A może załadować ponownie bez ponownego ładowania strony?

Odpowiedz

8

Byłem w stanie zresetować mój kreator kroków jQuery, dodając kilka linii kodu do rozwiązania here oraz kilka dodatkowych linii kodu, aby usunąć klasy css. Będziesz musiał zresetować formularz przy użyciu preferowanej biblioteki przed lub po wywołaniu tej funkcji.

$.fn.steps.reset = function() { 
    var wizard = this, 
    options = getOptions(this), 
    state = getState(this); 
    goToStep(wizard, options, state, 0); 

    for (i = 1; i < state.stepCount; i++) { 
    var stepAnchor = getStepAnchor(wizard, i); 
    stepAnchor.parent().removeClass("done")._enableAria(false); 
    } 
}; 
+0

Tak, zrobiłem to samo rozwiązanie. – MeIr

+1

Utworzono żądanie pobrania: https://github.com/rstaib/jquery-etaps/pull/149. – Jonny

+3

ReferenceError: getOptions nie jest zdefiniowany –

0
You can user this function after submitting your form: 

function resetForm(id_form){ 
    $("#" + id_form).find('input[type="text"]').val(''); 
    $("#" + id_form).find('input[type="password"]').val(''); 
    $("#" + id_form).find('input[type="checkbox"]').removeAttr("checked"); 
    $("#" + id_form).find('select option').removeAttr("selected"); 
    $("#" + id_form).find('textarea').val(''); 
} 

Best regards! 
+0

jQuery Steps - jest czarodziejem UI ze stopniami i wiele formularzy. Muszę zresetować cały Kreator, nie tylko jeden formularz. PS: Obecnie mam zamiar dokładnie to, co zasugerowałeś, ALE chcę zresetować cały Wizard, a nie tylko formularz. – MeIr

1

Można użyć jQuery Form Plugin , resetowanie lub wyczyszczenie formularza jest wtedy bardzo łatwo

$('#myFormId').resetForm(); 

Albo

$('#myFormId').clearForm(); 

Albo tylko Special Fields

$('#myFormId .specialFields').clearFields(); 
+0

Kroki jQuery - jest interfejsem kreatora z krokami i wieloma formularzami. Muszę zresetować cały Kreator, nie tylko jeden formularz. PS: Obecnie mam zamiar dokładnie to, co zasugerowałeś, ALE chcę zresetować cały Wizard, a nie tylko formularz. – MeIr

+0

Melr, Ponieważ używasz wtyczki krokowej + formularzy, będziesz musiał zresetować swoją aplikację w dwóch krokach. Najpierw zresetuj webform (y) -> możesz użyć do tego wtyczki z. Po drugie musisz zresetować krok Webapp. ASardar ma dobre rozwiązanie [Resetuj indeks kroków, gdy formularz onFinished] (https://github.com/rstaib/jquery-steps/issues/26). – Bunkerbuster

+0

Obecnie idę dokładnie to, co zasugerowałeś. Jednak nie całkowicie resetuje wtyczkę "kroków": karty są nadal podświetlone i nie tylko. – MeIr

1

niewielka korekta z funkcją zwyczaj Reset:

$.fn.steps.reset = function() { 
var wizard = this, 
options = getOptions(this), 
state = getState(this); 

if(state.currentIndex>0) 
{ 
    goToStep(wizard, options, state, 0); 

    for (i = 1; i < state.stepCount; i++) { 
    var stepAnchor = getStepAnchor(wizard, i); 
    stepAnchor.parent().removeClass("done")._enableAria(false); 
    } 
} 
}; 

I dodaje, jeśli w przypadku próby zresetowania w kroku 0.

Powiązane problemy