2016-07-08 7 views
0

Unten sind meine Codierung. Bitte geben Sie an, warum der süße Alarm nur bis zu 1 Sekunde auftaucht und dann automatisch auf eine andere Seite umleitet.Warum MVC Sweet Alert wird automatisch geschlossen?

Von HTML:

$.ajax({ 
    url: "/ABC/AddST/", 
    data: { 
    "username": $("#username").val(), 
    "fullname": $("#fullname").val() 
    }, 
    type: "POST" 
}).success(function(data) { 
    swal({ 
    title: "Done!", 
    text: "Sales Team was successfully added!", 
    type: "success" 
    }, function() { 
    window.location.href = '/ABC/STList'; 
    }); 
}).error(function(data) { 
    swal("Oops", "We couldn't connect to the server!", "error"); 
}); 

Von Controller:

[HttpPost] 
public ActionResult AddSalesTeam(string username, string fullname) 
{ 
    var st = new Sales(); 

    if (ModelState.IsValid) 
    { 
     st.Username = username; 
     st.FullName = fullname; 
     db.User.Add(st); 
     db.SaveChanges(); 
     return RedirectToAction("SalesTeamList"); 
    } 
    return View(); 
} 

Antwort

1

Sie müssen es einen Timer geben.

swal({ 
    title: "Done!", 
    text: "Sales Team was successfully added!", 
    type: "success", 
    timer: 1000, // Wait 1 second 
    showConfirmButton: false // No reason to show the button 
}, function() { 
    window.location.href = '/ABC/STList'; 
}); 
+0

Warum sollte showConfirmButton falsch sein? Ich habe versucht, Timer, aber keine showConfirmButton, es gibt das gleiche Ergebnis für mich zurück. Aber wenn ich beides einsetze, kann es funktionieren – Tss

+0

@Yuan [Es funktioniert so oder so.] (Https://jsfiddle.net/r6ucewha/) Es macht einfach keinen Sinn, eine Bestätigungsschaltfläche zu haben, wenn die Seite ist umgeleitet. –

+0

Wie wäre es mit der Bestätigungstaste? – Tss

1

Soweit ich von der Frage zu verstehen, wollen Sie die Warnung zeigen, und dann, wenn der Klick Benutzer in der bestätigen-Taste und dann auf die, /ABC/STList Seite umleiten (statt die Benutzer automatisch die Umleitung), Recht? Wenn ja. haben Sie mit diesem ?:

versucht
swal({ 
    title: "Done!", 
    text: "Sales Team was successfully added!", 
    type: "success", 
    showCancelButton: false, 
    confirmButtonText: "Ok", 
    closeOnConfirm: false 
}, function() { 
    window.location.href = '/ABC/STList'; 
}); 

========================

EDIT: Wenn Sie wollen können Sie Entfernen Sie die closeOnConfirm: false Zeile und das Popup wird nach dem Klicken auf die ok Schaltfläche geschlossen (aber Sie werden immer noch umgeleitet). Ist nur weil es besser für den Endbenutzer ist zu sehen, dass das Popup nach dem Klicken auf die Schaltfläche geschlossen ist.

+0

ya, du bekommst was ich meine. aber ich habe deinen Code ausprobiert, das Ergebnis ist immer noch gleich – Tss

+0

Bitte versuche es [hier] (https://jsfiddle.net/r6ucewha/2/). Es wird Sie nur umleiten, wenn Sie auf die Schaltfläche _ok_ klicken. – sebaferreras

0

Hinzufügen von e.preventDefault() vor und nach $ Ajax-Funktion wird tun.

e.preventDefault(); 
$.ajax({ 
    url: "/ABC/AddST/", 
    data: { 
    "username": $("#username").val(), 
    "fullname": $("#fullname").val() 
    }, 
    type: "POST" 
}).success(function(data) { 
    swal({ 
    title: "Done!", 
    text: "Sales Team was successfully added!", 
    type: "success" 
    }, function() { 
    window.location.href = '/ABC/STList'; 
    }); 
}).error(function(data) { 
    swal("Oops", "We couldn't connect to the server!", "error"); 
}); 
e.preventDefault(); 
Verwandte Themen