2017-03-01 22 views
0

我正在制作一个mvc模态对话框。当用户点击模式按钮时,我会调用Ajax来加载对话框内容。当用户点击模式对话框上的“更新”按钮时,我又做了一次Ajax调用来更新数据库并关闭对话框。我在我的模式对话框中的“更新”按钮上发现了一个问题。输入和模态对话框之间的区别

如果我使用 “一” 为更新按钮,

<a href="#" id="partDialogSubmit" class="btn btn-success btn-block"> <span>Update</span> </a> 

一切完美的作品。

但是,如果使用“输入”

<input type="submit" id="partDialogSubmit" class="btn btn-success btn-block" value="Update" /> 

一些网址不存在重定向我。当模态即将显示时,它看起来像我以前的Ajax调用中的一些缓存。

为什么行为不同?

这里是我的模态弹出脚本:

var showPartDialog = function(partID, modalBodyDiv, modalTag) 
{ 
var url = "/Part/ShowPartDialog?Id=" + partID; 
$("#partModalBodyDiv").load(url, function() { 
    $(modalTag).modal("show"); 
}) 
} 

这里是我的语气请提交脚本:

$("#partDialogSubmit").click(function() { 
    var myformdata = $("#partDialogForm").serialize(); 
    $.ajax({ 
     type: "POST", 
     url: "/Part/UpdatePart", 
     data: myformdata, 
     success: function() { 
      window.location.href = "/Part/Index"; 
     } 
}) 

当使用“输入”,它总是试图加载它不“ShowPartDialog”存在

任何提示都会有帮助。谢谢!

+1

你的输入元素不*只是*一个按钮,它是一个*提交*按钮。如果它在表单元素中,那么点击它将提交表单,导致页面重新加载/重定向。改为使用'type =“button”'。 – nnnnnn

回答

0

我认为链接和输入的区别在于输入可以触发默认的表单行为。也许e.preventDefault()可以提供帮助。只是猜测...