如何停止在ASP.NET MVC中发布按钮事件?

mar*_*ith 6 .net c# asp.net-mvc jquery

我有一个标准视图和一些标准input标签没有runat=server:

<button id="submit">submit</button>
<button id="clear">clear</button>
Run Code Online (Sandbox Code Playgroud)

按任一导致页面提交.相反,我希望他们什么都不做,因为我正在click使用JQuery 处理事件.我该怎么做呢?

编辑

这是我的jquery代码

$('#submit').bind('click', submit_click);

function submit_click() {
    alert('clicked submit');
}
Run Code Online (Sandbox Code Playgroud)

Mik*_*Vee 10

设置typebutton

这将阻止表单提交。
不需要额外的 javascript 函数。
注意:当这个属性没有设置,它默认为submit

我假设您的button控件位于form标签或Html.BeginForm()代码块内。
下面是一些例子:

<button onclick="alert('You Clicked Implicit Submit.')">Implicit Submit</button>//Post Back Form.
<button onclick="alert('You Clicked Submit.')" type="submit">Submit</button>//Post Back Form.
<button onclick="alert('You Clicked Button.')" type="button">Button</button>//Stay on Client Page.
Run Code Online (Sandbox Code Playgroud)

对于简单的重定向(不将表单发布回其默认操作),您也可以这样做:

<button onclick="location.href='@Url.Action("Action", "Controller")'" type="button">Redirect</button>
Run Code Online (Sandbox Code Playgroud)

特别感谢这里的答案:https : //stackoverflow.com/a/17452739/555798


ili*_*ian 5

在你的事件处理程序中,你需要做:

$("button").click(function(event){
  event.preventDefault();
  // do something
});
Run Code Online (Sandbox Code Playgroud)

取自:http://docs.jquery.com/Events/jQuery.Event#event.preventDefault.28.29

更新 这应该适用于您的代码:

$('#submit').bind('click', submit_click);

function submit_click(event) {
    event.preventDefault();
    alert('clicked submit');
}
Run Code Online (Sandbox Code Playgroud)


Gar*_*ler 3

将其添加到您的点击事件绑定中:

$('#submit').bind('click', submit_click);

function submit_click() {
    alert('clicked submit');
    return false;
}
Run Code Online (Sandbox Code Playgroud)

返回 false 会停止按钮发生的常规行为,而仅执行您的代码。