我有一个MVC3表单,上面有一个字段 - 我不希望表单实际提交,但是与ajax一起使用可以返回JSON数据以便在屏幕上显示。
我想使用ViewModel / Form,以便调用我的错误消息验证并显示得相当不错,我也可以调用远程验证。
但是,当用户在字段中输入数据时,他们可以按Enter键并提交表单 - 这些表单会发送到控制器并返回一个新的,清晰的页面:(
我试过禁用表单提交 - 但它似乎不起作用?
$(document).ready(function () {
$('form').submit = function (e) {
alert('submit');
e.preventDefault();
return false;
};
.....
我也尝试将按钮移出表单,但(正如预期的那样)没有任何区别。
@using (Html.BeginForm())
{
@Html.ValidationSummary(true)
<div>
<span class="editor-label">@Html.LabelFor(model => model.AccountNumber)</span>
<span class="editor-field">@Html.TextBoxFor(model => model.AccountNumber, new { @id = "accountNumber", size = "15" })
@Html.ValidationMessageFor(model => model.AccountNumber)</span>
</div>
}
<div>
<button type="button" id="generate" class="generate">
Generate</button>
</div>
如何停止输入提交表单?
答案 0 :(得分:2)
试试这个
@Html.TextBoxFor(model => model.AccountNumber, new { @id = "accountNumber", size = "15",onkeydown="return (event.keyCode!=13);" })
答案 1 :(得分:1)
你可以使用它(在括号上替换'='):
$('form').submit(function(e) {
alert('submit');
e.preventDefault();
return false;
});
这对我有用