2016-07-08 8 views
0

以下は私のコーディングです。甘い警告が最大1秒間表示されないようにしてから、別のページに自動的にリダイレクトする理由をアドバイスしてください。 HTMLからMVC Sweet Alertがなぜ自動的に閉じるのですか?

:コントローラから

$.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"); 
}); 

[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(); 
} 

答えて

1

あなたはそれにタイマーを与える必要があります。

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

なぜshowConfirmButtonがfalseである必要がありますか?私はタイマーを入れようとしましたが、showConfirmButtonはありません。同じ結果を返します。しかし、私は両方に入れれば、それは動作することができます – Tss

+0

@元[いずれかの方法で動作します](https://jsfiddle.net/r6ucewha/)それはちょうどそのページが存在しているときに確認ボタンを持つことはあまり意味がないリダイレクトされました。 –

+0

確認ボタンが必要ですか? – Tss

1

私の知る限りは質問から理解し、アラートを表示したい、その後、確認ボタンでユーザーのクリックが、その後、/ABC/STListページにリダイレクトする場合、(代わりに、自動的にユーザーをリダイレクトします)、 右?もしそうなら。あなたはこの?:

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

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

EDITで試してみました:あなたがしたい場合は、することができますcloseOnConfirm: false行を削除すると、okボタンをクリックするとポップアップが閉じられます(ただし、リダイレクトされます)。エンドユーザーがボタンをクリックした後でポップアップが閉じられていることを確認する方が良いからです。

+0

あなたは私が何を意味するかを得る。私はあなたのコードを試しましたが、結果は同じです – Tss

+0

[ここ](https://jsfiddle.net/r6ucewha/2/)を試してください。 _ok_ボタンをクリックするだけでリダイレクトされます。 – sebaferreras

0

$ ajax関数の前後にe.preventDefault()を追加すると便利です。

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(); 
関連する問題