我对正在开发的应用程序的部分视图有@using (Html.BeginForm())
。我在页面上有一个文本框,在输入文本框后单击输入按钮,它正在提交表单。无论如何,我可以告诉MVC不要在BeginForm Helper中执行任何操作吗?
我尝试传递@using (Html.BeginForm(null))
,但结果相同。我意识到我可能会拿出Html.BeginForm并且只是使用标签并且javascript为提交操作返回false但是我想知道是否可以用html.beginform实现这种行为?
更新 - 显示部分视图
<div class="row">
<div class="col-xs-12 h-form no-padding">
@using (Html.BeginForm(null))
{
@Html.AntiForgeryToken()
<p>
<div>
<input id="txtSearch" type="text" placeholder="Search...">
</div>
</p>
}
</div>
</div>
更新II 好像只有一个文本字段存在并且点击输入表单是在POST操作上提交的。如果我在页面上放置2个文本字段,则会调用任何一个POST操作。
无论如何,我要删除Html.BeginForm()并使用<form onsubmit="return false">
答案 0 :(得分:2)
如果您想要在单击“提交”按钮时表单未提交。提交按钮类型必须为按钮
<input **type="button"** value="Create" onclick="ajaxSubmit();" />
答案 1 :(得分:1)
要在文本框中输入时禁用发布表单,请添加以下jquery函数:
$(function() {
$(':text').bind('keydown', function(e) { // on keydown event for all textboxes
if(e.keyCode == 13) { // if key pressed it enter
e.preventDefault();
return false;
} else {
return true;
}
}
});
答案 2 :(得分:0)
你可以使用
using (Ajax.BeginForm())
{
@Html.AntiForgeryToken()
<p>
<div>
<input id="txtSearch" type="text" placeholder="Search...">
</div>
</p>
}
然后可以执行任务。
或尝试
using (Html.BeginForm("", "", FormMethod.Get))
{
@Html.AntiForgeryToken()
<p>
<div>
<input id="txtSearch" type="text" placeholder="Search...">
</div>
</p>
}